Java 当url具有参数时,不会呈现JSF
我的问题是,当我这样做的时候Java 当url具有参数时,不会呈现JSF,java,web-applications,jsf,servlets,mapping,Java,Web Applications,Jsf,Servlets,Mapping,我的问题是,当我这样做的时候 <h:outputLink value="changeinfo.jsf"> Change name <f:param name="change" value="name"/> </h:outputLink> Facesservlet的url模式如下所示 <servlet-mapping> <servlet-name>Faces
<h:outputLink value="changeinfo.jsf">
Change name
<f:param name="change" value="name"/>
</h:outputLink>
Facesservlet的url模式如下所示
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
Facesservlet
*.jsf
现在进入changeinfo页面
<f:verbatim rendered="#{'bean.param'} == 'name'">
NAME
<h:form id="form1">
...
</h:form>
</f:verbatim>
名称
...
然后在生成的html页面上,我只看到单词名,而没有看到表单。为什么会这样?你见过这个吗:
问题不在于扩展,而是JSF不支持这种开箱即用的方法。如果您必须使用例如编写解决方案代码或更改web框架
顺便说一句,JSF2将支持这种风格的导航。看看:你不能把JSF组件放在
f:verbatim
中,只能放在普通的HTML中。改用h:panelGroup
另外,去掉EL中bean属性标识符周围的引号。否则,它将被视为普通香草串。您还应该将字符串比较放在EL表达式中
总结:
<h:panelGroup rendered="#{bean.param == 'name'}">
...
</h:panelGroup>
它应该很好用。在url模式匹配上根本不会测试查询字符串。你的问题在别的地方。什么JSF impl/版本?什么Web服务器impl/版本?你是否对URL进行了双重、不双重、三重检查?该URL与该模式匹配。所以你在其他地方遇到了问题。检查日志。您可能需要重新阐述“渲染”的含义。问题的模糊性可能就在这里,它是JSF2.0和GlassfishV3。现在我正在尝试做一个导航案例,就像沃洛桑回答中的链接一样。我的意思是,一切都像。。。。当我看到“编译”html页面时,etc就消失了。那一页简直是空的。该死的你这个笨蛋!总是在我开始之前回答JSF问题;P
<h:panelGroup rendered="#{bean.param == 'name'}">
...
</h:panelGroup>
<h:panelGroup rendered="#{param.change == 'name'}">
...
</h:panelGroup>