У меня есть раскрывающийся список, в котором пользователь выбирает свое рабочее пространство и в зависимости от того, какое рабочее пространство он выбирает, он имеет доступ к определенным приложениям.Я пытаюсь сделать так, чтобы 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;
}
Не стесняйтесь просить дополнительныеинформация и спасибо.