我的JSF2.0应用程序中有两个屏幕。屏幕1搜索学生并在表中列出学生。结果表中的学生名称是指向“学生详细信息”页面(屏幕2)的链接。
我的托管豆:
@SessionScoped
public class TestController {
private Student studentOnUI; // Student being viewed on the UI
// synchronized public getters and setters
public String viewStudentAction(String studentId) {
this.studentOnUI = getStudentFromDB( studentId );
return "studentDetailedPage";
}
public synchronized String clearSearchAction() {
this.studentOnUI = null;
return "studentSearchPage";
}屏幕1 xhtml片段
<!-- search fields -->
<h:commandButton
value="Clear Search"
action="#{testController.clearSearchAction()}"/>
<!-- Search button -->
<!-- search results table -->屏幕2 xhtml片段
<h:outputText value="#{testController.studentOnUI.name}" />
<h:dataTable
value="#{testController.studentOnUI.subjects}"
var="subject">
<h:outputText value="#{subject.score}"/>
</h:dataTable>我面临以下问题:
尽管托管bean处理同步(正确吗?)它不能解决这里的并发问题,因为可能会发生以下情况
请了解我在这个方法中做错了什么,或者是否需要在这里采用不同的方法。
发布于 2011-01-13 21:22:28
这是非常奇怪的行为,但我宁愿禁用JavaScript第一页上的链接,使其“不可点击”。尝试使用jQuery:
1按钮:$(‘#按钮’).attr(“禁用”,真);
2链接:$(‘a.something’).click(函数(E){ e.preventDefault();});
我不确定备份bean中的同步,因为JSF必须将锁放在sure对象上,而不是clear方法。我说错了吗?
https://stackoverflow.com/questions/4675806
复制相似问题