На этот вопрос могут быть разные ответы, потому что каждый будет делать это по-своему.Но я думаю, что хорошее обсуждение может помочь мне найти мой.
Сначала я объясню сценарий, который я пытаюсь выполнить.Пожалуйста, будьте терпеливы, это будет долго (хотя я пытался сделать это коротким).И поскольку я не очень опытен, пожалуйста, будьте добры.
Мне нужно контролировать доступ пользователей к различным страницам и функциям веб-приложения, которое я создаю.Веб-страницы сгруппированы в различные модули.И каждый модуль имеет разные типы параметров доступа.Например, модуль 1 может иметь только параметры доступа для чтения и записи, а модуль 2 может иметь параметры доступа для чтения, записи, изменения и удаления.Моя база данных создана так, как мне нужно, мне просто нужна помощь в создании внешнего интерфейса для управления ею.
У меня есть что-то вроде следующего (все переменные и списки задаются в действиикласс, который был вызван перед отображением этой страницы):
<s:form id="form1" name="form1" action="savePermissions">
<s:select name="module" label="Select Module" list="moduleList" onchange="dojo.event.topic.publish('getPermissions');"/>
<table>
<s:iterator id="iter" value="emplList" var="emplVar">
<tr>
<td><s:textfield name="empl" value="%{<s:property value='emplName'/>}" readonly="true"/></td>
<td><s:select name="perm" value="%{<s:property value='permission'}" list="perList"/></td>
</tr>
</s:iterator>
</table>
<s:submit value="save"/>
</s:form>
Здесь, когда модуль выбирается из первого раскрывающегося списка, отображается список пользователей и соответствующие параметры доступа.Теперь я должен иметь возможность выбрать опцию доступа для каждого пользователя и затем связаться с классом действия с этими значениями, чтобы я мог обновить базу данных.
Но здесь у меня есть 2 проблемы:
1.) Текстовые поля сотрудника не заполняются значениями.
2.) В классе действий, который будет вызываться при отправке этой формы, как я могу убедиться, что получаю правильные значения, соответствующие правильнымимя пользователя.Я имею в виду, что если «read» выбрано для «user1» и «view» для «user2» на странице jsp, я должен получить то же самое в классе действий.
Пожалуйста, сообщите.
Спасибо !!
Если что-то неясно, пожалуйста, прокомментируйте.
РЕДАКТИРОВАТЬ
public class getPermissions1Action extends ActionSupport {
private List<String> moduleList;
public List<String> getModuleList() {
return moduleList;
}
public void setModuleList() {
this.moduleList = Arrays.asList("module1","module2","module3");
}
private empl emplVar;
private List<empl> emplList;
public List<empl> getEmplList() {
return emplList;
}
public void setEmplList(List<empl> emplList) {
this.emplList = emplList;
}
public empl getEmplVar() {
return emplVar;
}
public void setEmplVar(empl emplVar) {
this.emplVar = emplVar;
}
private List<String> perList;
public List<String> getPerList() {
return perList;
}
public void setPerList() {
this.perList = Arrays.asList("enter","view","edit","delete","nothing");
}
public getPermissions1Action() {
}
@Override
public String execute(){
empl var = new empl();
List<empl> empl = new ArrayList<empl>();
try{
for(int i=0;i<3;i++){
var.setEmplName("name");
var.setSelPer("view");
empl.add(var);
}
}catch(Exception e){
System.out.println(e.getMessage());
}
setEmplList(empl);
setModuleList();
setPerList();
return SUCCESS;
}
}
empl class:
public class empl {
private String emplName;
private String selPer;
public String getEmplName() {
return emplName;
}
public void setEmplName(String emplName) {
this.emplName = emplName;
}
public String getSelPer() {
return selPer;
}
public void setSelPer(String selPer) {
this.selPer = selPer;
}
}