Struts2:根据前一个下拉列表中的选择填充下拉列表

时间:2012-02-16 15:01:26

标签: java database struts2 drop-down-menu openjpa

我有一个下拉列表设置,用户选择他们的工作区,根据他们选择的工作区,他们可以访问某些应用程序。我试图使其成为工作区下拉列表的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;

}

随时提出更多信息,谢谢。

0 个答案:

没有答案