我需要理解。为什么我在JSF文件中提交一些输入后仍然在同一页面上找到我的自己,看看:
<!--<b>codes below belong to <i>page1.xhtml</i></b>-->
<h:form>
<table>
<tr>
<td>Name:</td>
<td><h:inputText value="#{user.name}"/></td>
</tr>
</table>
</h:form>
<p><h:commandButton value="Login" action="page2"/></p>
按下&#34;登录&#34; ,它显示#{user.name}
的{{1}}值,但链接本身仍为page2.xhtml
,为什么不faces/page1.xhtml
?有人可以向我解释一下吗?这是否意味着在JSF中我们只从一个页面访问所有内容?
我尝试做这样的事情:
faces/page2.xhtml
然后我意识到没有这样的&#34;行动&#34;在<h:form action="page2.xhtml">
代码
答案 0 :(得分:1)
在JSF中,当你正常向java bean提交一个值时:一个处理信息的类,创建一个bean,你可以使用这样的代码:
package beans
import javax.faces.bean.RequestScoped
import javax.faces.bean.ManagedBean
@RequestScoped
@ManagedBean
public class SignInBean {
private String username;
//getter and setter for username
public void register(){
//add to data base
//redirect to new page
}
}
并在xhtml文件中
<h:inputText value="#{signInBean.username}"/>
<h:commandButton value="Login" action="#{signInBean.register"/>
答案 1 :(得分:1)
我相信你要找的是这个问题的答案:How to make URL reflect the current page (and not the previous one)。
在你的例子中,我会说你理想情况下想要使用选项
Send a redirect after POST.
For example, showing list of all data after successful create/update/delete, etc.