Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当url具有参数时,不会呈现JSF_Java_Web Applications_Jsf_Servlets_Mapping - Fatal编程技术网

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>