0

我有一个应用程序正在运行。我有一个页面addstudent.xhtml 页面,用户在其中添加学生详细信息。当用户完成添加并提交后,他将被重定向到displaystudent.xhtml 页面。

我的问题是当用户直接在浏览器 localHost:8081/Student/displaystudent.xhtml 上键入时。页面显示为空白值。这不应该发生。即使他在浏览器上键入,我如何防止这种情况发生。

两个文件addstudent.xhtml displaystudent.xhtml 页面都在web-inf 文件夹中。我正在使用 Jsf2,primefaces 3.5

4

1 回答 1

0

根据学生是否成功添加,制作displaystudent.xhtml一个包含条件渲染的包含文件。addstudent.xhtml

例如,假设标准 JSF:

<h:panelGroup id="addStudent" layout="block">
    <h:form rendered="#{empty bean.student.id}">
        <h2>Add student</h2>
        <h:inputText value="#{bean.student.name}" />
        ...
        <h:commandButton value="Add" action="#{bean.add}">
            <f:ajax execute="@form" render=":addStudent" />
        </h:commandButton>
    </h:form>

    <h:panelGroup layout="block" rendered="#{not empty bean.student.id}">
        <h2>Added student</h2>
        <dl>
            <dt>Student name</dt><dd>#{bean.student.name}</dd>
        </dl>
    </h:panelGroup>
</h:panelGroup>

(简化;您当然可以拆分添加学生到<ui:include src="/WEB-INF/displaystudent.xhtml">等等)

add()方法应返回void或的按钮null重新呈现<h:panelGroup id="addStudent">. 如果学生被成功添加到数据库中,那么它应该有一个非空的 ID。这将导致表单被隐藏并显示结果面板。

也可以看看:

于 2013-07-24T11:19:08.053 回答