Javascript 在jsp页面中设计一个复杂的结构,并使用action类在其上传递值

Javascript 在jsp页面中设计一个复杂的结构,并使用action类在其上传递值,javascript,ajax,jsp,struts2,action,Javascript,Ajax,Jsp,Struts2,Action,这个问题可以有不同的答案,因为每个人都会用自己的方式来回答。但我想一次好的讨论可以帮我找到我的 首先,我将解释我试图执行的场景。请耐心点,它会很长(尽管我试着保持它短)。既然我不是很有经验,请善待我 我需要控制用户对我正在构建的web应用程序的各种页面和功能的访问。网页被分成不同的模块。每个模块都有不同类型的访问选项。例如,模块1只能有读写访问选项,但模块2可以有读、写、修改和删除访问选项。我已经建立了我需要的数据库,我只是需要帮助建立前端来控制它 在我的脑海中有如下类似的想法(所有变量和列表都

这个问题可以有不同的答案,因为每个人都会用自己的方式来回答。但我想一次好的讨论可以帮我找到我的

首先,我将解释我试图执行的场景。请耐心点,它会很长(尽管我试着保持它短)。既然我不是很有经验,请善待我

我需要控制用户对我正在构建的web应用程序的各种页面和功能的访问。网页被分成不同的模块。每个模块都有不同类型的访问选项。例如,模块1只能有读写访问选项,但模块2可以有读、写、修改和删除访问选项。我已经建立了我需要的数据库,我只是需要帮助建立前端来控制它

在我的脑海中有如下类似的想法(所有变量和列表都在显示此页面之前调用的action类中设置):

你需要告诉/展示你的动作类中由什么组成?或者,当您在第一个
select
组件中选择某个值时,它应该填充迭代器的值,并且字段应该给出相应的迭代器值,您是否期待着这样的结果

如果是这种情况,我担心它将不起作用,因为您需要一些
ajax
功能,比如您需要刷新该区域并更新其内容,或者您需要从
ajax
调用中解析该数据,并需要填充相关字段

关于第二部分。如果您需要为一个用户提供多个权限,那么该怎么办?在这种情况下,您可以启用多选选项,但我更希望在每个用户前面有一个复选框列表,并且我可以根据我的选项/选择进行选择

就个人而言,为了提供对应用程序的基于角色的访问,我将选择其他一些方法,例如Spring security,它是在考虑所有此类用例的情况下开发的

这是给你的工作副本

<s:form id="form1" name="form1" action="savePermissions">

    <table>
        <s:iterator value="emplList" var="emplVar">
        <tr>
            <td><s:textfield name="empl" value="%{emplName}" readonly="true"/>
            </td>

        </tr>
    </s:iterator>
    </table>
    <s:submit value="save"/>
</s:form>
操作名称
getPermissions1Action
应始终以大写字母(
getPermissions1Action
)开头,但get/set应用于方法而不是类名

我不知道你为什么要定义动作构造函数

public getPermissions1Action() {

}

谢谢你!!此表单位于一个“div”中,它在更改第一个select元素时侦听发布的主题。因此,每当更改第一个选择时,“emplList”就会填充到action类中,并且该“emplList”的类型由“emplVar”定义,后者也在action中定义。在这里,我不确定是否可以像我所做的那样指定组件的value属性,即在value属性中指定property标记。这行得通吗?其次,我授予权限的方式是这样的-->如果给用户更高的权限,他也有更低的权限。因此,如果用户具有写入权限,那么他也具有读取权限。因此,我只需要选择一个权限。首先,删除
id
它已被弃用,并且您已经为此使用了
var
,以及为什么要使用“”,因为在迭代器工作时,它已经将您的对象推到了值堆栈的顶部,因此您可以引用easilyAs以获得安全性,请提供一些好的基本文档,像我这样的初学者可以使用。我想尝试并实现这一点。但我担心的是,通过定制前端,我会获得同样的灵活性。为此目的,还有哪些其他选择/框架。目前,我正在使用LDAP对Active Directory中的用户进行身份验证。所以这也必须牢记在心。我只是在试验,所以我把id作为试验,将删除它。第二,你的意思是我可以直接在“选择”的value属性中指定“emplName”吗
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;
    }

}
The employee text fields do not get populated with the values.
<s:form id="form1" name="form1" action="savePermissions">

    <table>
        <s:iterator value="emplList" var="emplVar">
        <tr>
            <td><s:textfield name="empl" value="%{emplName}" readonly="true"/>
            </td>

        </tr>
    </s:iterator>
    </table>
    <s:submit value="save"/>
</s:form>
@Override
public String execute(){
empl var = new empl();
List<empl> empl = new ArrayList<empl>();  
// Ther is no need to define this instead you can add directly to emplList
   like emplList.add(object);
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;
}
public getPermissions1Action() {

}