Javascript jsp:include中的jsf1.2自定义组件

Javascript jsp:include中的jsf1.2自定义组件,javascript,jsp,jsf,jsf-1.2,jspinclude,Javascript,Jsp,Jsf,Jsf 1.2,Jspinclude,在我开始提问之前,以下是我不幸的局限性: 我使用的是JSF1.2,而不是2;所以没有复合组件 我使用JSP进行渲染,而不是facelets;因此,这些复合组件中也没有一个 我不允许使用任何第三方标记库(richFaces、iceFaces等) 这些限制是一成不变的 现在进入我的问题。目前,我们有一个JSP子视图,用于处理创建地址的问题。有很多javascript与此一起使用,还有一个支持bean。本页从不直接使用。相反,它是使用包含的 但是,我希望能够更改几个属性。例如,是否需要county,我

在我开始提问之前,以下是我不幸的局限性:

  • 我使用的是JSF1.2,而不是2;所以没有复合组件
  • 我使用JSP进行渲染,而不是facelets;因此,这些复合组件中也没有一个
  • 我不允许使用任何第三方标记库(richFaces、iceFaces等)
  • 这些限制是一成不变的

    现在进入我的问题。目前,我们有一个JSP
    子视图
    ,用于处理创建地址的问题。有很多javascript与此一起使用,还有一个支持bean。本页从不直接使用。相反,它是使用
    包含的

    但是,我希望能够更改几个属性。例如,是否需要county,我们目前是否正在进行地址清理等。为了做到这一点,使用自定义组件(我认为?)是有意义的。然而,我并不确定最好的方法是什么

    如果可以的话,我会简单地将这个JSP转换成一个复合组件并完成它。然而,基于我的局限性,这并不是一个真正的选择

    我有什么选择?如果没有涉及到大量的javascript,这就不会那么困难了。我知道我的解释含糊不清;然而,我更多的是寻求指导,而不是直接的答案。我在谷歌上搜索过一些东西,比如带有javascript的自定义JSF1.x组件等。但是,我没有找到多少好文章

    提前感谢。

    创建一个JSP标记文件

    /WEB-INF/tags/foo.tag

    <%@ tag body-content="empty" %>
    <%@ attribute name="countryRequired" required="false" type="java.lang.Boolean" %>
    <%@ attribute name="showAddress" required="false" type="java.lang.Boolean" %>
    
    <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
    <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <h:panelGrid columns="2">
        <h:outputLabel for="country" value="Country" />
        <h:inputText id="country" value="#{bean.country}" required="${countryRequired}" />
    
        <c:if test="${showAddress}">
            <h:outputLabel for="address" value="Address" />
            <h:inputText id="address" value="#{bean.address}" />
        </c:if>
    </h:panelGrid>
    
    
    
    按如下方式声明和使用它(无需额外的XML配置):

    
    ...
    

    注意,JSTL在这里也是一个“视图构建时”标记,就像在Facelets中一样。另外请注意,您不能使用
    #{}
    引用JSP标记属性。

    听起来好像他们希望您戴拳击手套时从胡椒粉中取出蝇粪。我去过那里。听起来您想在表单字段上添加自定义验证。真正的问题是,为什么
    jsp:include
    会放弃这个?除了学习如何在JSF1.2规范下编写定制组件之外,定制组件还能带来什么?如果它这么简单的话!没有使用JSF验证器进行验证。甚至没有定义所需的属性。他们不想改变这一点。除了验证之外,还有许多其他定制需要完成。例如,每个地址可以附加到不同的联系人,其contactId(联系人表的PK)需要预先定义。还有一个显示逻辑:这个地址可以是合法地址吗?一个使用lat/long定义的地址,而不是邮寄地址。@Zack。。。我刚刚注意到你是一个银泽人,如果你有机会和我聊天,我会为我们创造一个房间。我想谈谈这个。我创建了一个叫Zack和Maple_shaft room的房间。在接下来的几个小时里,我会在那里呆上几个小时,看看你是否出现。这似乎是一个很好的解决方案。在添加属性时,我仍然可以使用EL,对吗<代码>
    <%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
    ...
    <my:foo showAddress="true" />