如何用java中的动态值替换HREF值
<a href=\"http://www.example.com\"> with <a href=\ outcome \">
其中String outcome =“home \ login.jsf”
答案 0 :(得分:1)
您需要使用EL(如JSTL)在那里渲染字符串。
示例JSTL是:
<a href=#{outcome}> with <a href=\ outcome \">
答案 1 :(得分:1)
可能有不同类型的结果。如果您使用纯HTML或h:outputLink和h:link等组件,则在呈现页面时将解释EL表达式,而不是100%动态。
<h:link outcome="#{bean.link}" value="I go to a page!"/>
会生成一个<a>
标记,其中#{bean.link}
指定的链接为其href。
此外,在JSF 2.x中,您可以通过添加引用bean属性的if子句在您的defiend规则中使用条件导航:
<navigation-rule>
<from-view-id>index.xhtml</from-view-id>
<navigation-case>
<from-outcome>logIn</from-outcome>
<if>#{sessionBean.sessionActive}</if>
<to-view-id>userDashboard.xhtml</to-view-id>
<else if>#{sessionBean.rejectedUser}</else if>
<to-view-id>index.xhtml</to-view-id>
<else>
<to-view-id>register.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
另一方面,像h:commandButton和h:commandLink这样的元素有一个action属性,它引用一个返回类型为String或void的方法。如果方法返回String,则可以返回“#”或导航规则,隐式导航或配置的规则:
<h:commandLink value="Log In" action="#{bean.logIn}"/>
将从您的Bean调用logIn方法:
public String logIn() {
//Your login logic
if(userIsLoggedIn) {
return "userDashboard"; //Implicit navigation
} else {
return "index"; //Implicit navigation
}
}
隐式导航(JSF 2.x)允许您通过返回页面名称在同一文件夹中的页面之间导航。例如,返回index
会将用户发送到index.jsf
。
答案 2 :(得分:0)
将'a'标签替换为'h:commandLink'标签。并根据需要绑定值和动作。
<h:commandLink value="#{..}" action="#{yourBean.yourMethod()}"/>