我想实现一个简单的 PRG 方法,由于某种原因,它不能按我的预期工作。请帮忙。
1)我从 firstpage.xhtml 做一个 POST
<p:column>
<p:menuButton value="#{i18n['actions']}">
<p:menuitem value="#{i18n['edit-course']}" icon="ui-icon-pencil" ajax="false"
action="#{courseDesignerBackingBean.navigateToEditCourse(course.courseId)}" />
<p:menuitem value="#{i18n['delete-course']}" icon="ui-icon-trash" ajax="false"/>
</p:menuButton>
</p:column>
2)在这里,我正在处理动作并进行重定向。
public String navigateToEditCourse(long courseId){ String outcome = "editCourse?faces-redirect=true" + "&courseId=" + courseId; System.out.println(outcome); return outcome; }
3)在页面editCourse.xhtml中,我正在读取请求参数。
<f:metadata> <f:viewParam name="courseId" value="#{courseModelBean.courseId}"/> <f:event listener="#{courseDesignerBackingBean.updateModelBeanByCourseId}" type="preRenderView"/> </f:metadata>
我对第三步的期望是 courseModelBean 的第一个 setCourseId() 将被调用,然后是 courseDesignerBackingBean.updateModelBeanByCourseId。但是, setCourseId() courseModelBean 没有被调用。
有什么提示吗?
最好的问候,阿南德。