提交数据后仍在同一页面上

时间:2014-07-19 16:52:42

标签: jsf

我需要理解。为什么我在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"> 代码

2 个答案:

答案 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.