gpt4 book ai didi

java - 当 url 有参数时,JSF 不会呈现

转载 作者:行者123 更新时间:2023-12-02 08:30:54 33 4
gpt4 key购买 nike

我的问题是,当我这样做时

<h:outputLink value="changeinfo.jsf">
Change name
<f:param name="change" value="name"/>
</h:outputLink>

那么请求的url是

http://localhost:45054/WMC/user/changeinfo.jsf?change=name

我的 faces servlet 的 url 模式如下所示

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>

现在在变更信息页面

<f:verbatim rendered="#{'bean.param'} == 'name'"> 
NAME
<h:form id="form1">
...
</h:form>
</f:verbatim>

然后在生成的 html 页面上我只看到单词 NAME 而不是表单。这是为什么?

最佳答案

您不能将 JSF 组件放入 f:verbatim 中,只能将普通 HTML 放入其中。请改用 h:panelGroup

另外,去掉 EL 中 bean 属性标识符周围的引号。否则它会被视为普通字符串。您还应该将字符串比较放在 EL 表达式内部

总结:

<h:panelGroup rendered="#{bean.param == 'name'}">
...
</h:panelGroup>
<小时/>

额外提示:您可以通过#{param}访问请求参数。如果您在托管 bean 中不再需要它,那么您也可以这样做:

<h:panelGroup rendered="#{param.change == 'name'}">
...
</h:panelGroup>

关于java - 当 url 有参数时,JSF 不会呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3372038/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com