如何提交和转发到新链接

时间:2011-02-13 14:03:17

标签: javascript jsp jsf

我正在尝试提交页面并转发到新的JSP。

h:outputlink只会在不提交页面的情况下将我发送到新链接。 h:commandlink要求我实现一个支持bean函数和导航规则,如果我有很多链接将我发送到很多页面,这个规则非常复杂。

我认为必须有一种方式以更简单的方式提交和导航到新页面。

任何? TNX!

更新:使用下一个导航规则与Bozho答案结合使用。 适用于Chrome但适用于IE和Firefox :(不起作用意味着重定向不会发生,浏览器会重新加载同一页面)

此组件:(缩短)

<rich:panelMenu mode="server">
    <rich:panelMenuItem styleClass="configChooserButton" icon="images/email.png"
        disabledClass="configChooserButtonDisabled">
        <h:commandLink value="Email (#{email.numOfInstances})" action="email" />
    </rich:panelMenuItem>
</rich:panelMenu>

使用此导航规则:

<navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-outcome>email</from-outcome>
        <to-view-id>/emailConfiguration.jsp</to-view-id>
    </navigation-case>
</navigation-rule>

2 个答案:

答案 0 :(得分:3)

是 - 在action的{​​{1}}属性中指定导航结果的名称(在<h:commandLink>中定义)

答案 1 :(得分:2)

添加Bozho的正确答案; OP没有指定使用哪个版本的JSF,但在JSF 2.0中有implicit navigation的概念。

这意味着没有XML导航规则的导航。

例如,如果您想从某个页面转到名为“new_page.xhtml”的页面,则可以使用以下内容:

<h:commandButton value="something" action="new_page" />

(作为使用JSF的额外建议,如果可能的话,试着忘记JSP并使用Facelets。这里的JSP只是一个很大的痛苦) < / p>