Struts2: заполнение раскрывающегося списка на основе выбора из предыдущего раскрывающегося списка - PullRequest
1 голос
/ 16 февраля 2012

У меня есть раскрывающийся список, в котором пользователь выбирает свое рабочее пространство и в зависимости от того, какое рабочее пространство он выбирает, он имеет доступ к определенным приложениям.Я пытаюсь сделать так, чтобы onChange из выпадающего списка Workspace, список Applications автоматически перегенерировался с допустимыми приложениями для этого Workspace.В настоящее время у меня есть списки, заполняемые из таблиц данных, но нет никакой связи между рабочей областью и приложением, которое они могут выбрать.

Я использую Struts2 с OpenJPA для передачи данных в и из моих таблиц данных.

Другая информация, которая может быть полезна:

-Мы используем Бины (в основном, getter / setters) и DTOs -Каждое раскрывающееся меню имеет свою собственную таблицу и существует таблица пересечения междудве таблицы

Файл 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;

}

Не стесняйтесь просить дополнительныеинформация и спасибо.

...