我有一个下拉列表设置,用户选择他们的工作区,根据他们选择的工作区,他们可以访问某些应用程序。我试图使其成为工作区下拉列表的onChange,应用程序列表自动使用该工作区的允许应用程序重新生成。目前,我从数据表中填充了列表,但工作区和他们可以选择的应用程序之间没有任何关联。
我正在使用Struts2和OpenJPA来传输数据到我的数据表之间。
可能有用的其他信息:
- 我们正在使用Beans(主要是getter / setter)和DTO - 每个下拉列表都有自己的表格,并且有两个表格之间的交叉表
JSP文件:
<s:select headerKey="-1"
headerValue="-- Please Select --"
list="#session.loggedinUser.workSpaceList"
name="workspaceId"
id="workspaceId"
listKey="key"
listValue="value"
theme = "simple"/>
</td>
.
.
.
.
<td>
<s:select
headerKey="-1"
headerValue="-- Please Select --"
list="#session.loggedinUser.applicationModuleList"
name="selectedApplicatonId"
id="selectedApplicatonId"
listKey="key"
listValue="value"
theme = "simple"/>
</td>
struts.xml中:
<action name="ComponentSelectionAction" class="Correct.Folder.PathonChange, .ComponentSelectionAction">
<interceptor-ref name="tstSessionCheckStack"></interceptor-ref>
<result name="success" type="chain">RequirementListAction</result>
<result name="Administration" type="chain">gotoAdmin</result>
<result name="WorkspaceEdit" type="chain">WorkSpaceValidationAction</result>
<result name="error">/jsp/test.jsp</result>
</action>
ActionClass:
public String execute() {
String l_strApplicationName = "";
try{
this.getSession().put(CommonConstants.WORKSPACE_ID,this.getWorkspaceId());
this.getLoggedInUser().setSelectedWorkSpace(this.getWorkspaceId());
l_strApplicationName = DatabaseHelperUtil.getApplicationName(this.getSelectedApplicatonId());
if (l_strApplicationName != null && !l_strApplicationName.equals("")) {
if (l_strApplicationName.equals("Administration") && (this.getWorkspaceId().equals("0"))) {
l_strApplicationName = "Administration";
}
else if (l_strApplicationName.equals("Administration") && (!this.getWorkspaceId().equals("0"))) {
l_strApplicationName= "WorkspaceEdit";
}
else {
l_strApplicationName = "success";
}
}
}
catch(Exception p_exception){
p_exception.printStackTrace();
}
return l_strApplicationName;
}
随时提出更多信息,谢谢。