Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以禁用模式打开jsp_Jsp_Struts2_Ognl - Fatal编程技术网

以禁用模式打开jsp

以禁用模式打开jsp,jsp,struts2,ognl,Jsp,Struts2,Ognl,我有一个用户填写详细信息的表单&管理员在禁用模式下可以看到相同的表单。此外,管理员可以根据其角色编辑的字段也很少。因此,基本上在管理模式下,有两个按钮用于更新和查看。 我尝试使用会话变量opMode实现它。并根据opMode在jsp中添加了一个scriptlet,字段可见。但在这里,我必须复制相同的字段三次。 例如: <% String opMode=(String)session.getAttribute("opMode");%> <%if(opMo

我有一个用户填写详细信息的表单&管理员在禁用模式下可以看到相同的表单。此外,管理员可以根据其角色编辑的字段也很少。因此,基本上在管理模式下,有两个按钮用于更新和查看。
我尝试使用会话变量opMode实现它。并根据opMode在jsp中添加了一个scriptlet,字段可见。但在这里,我必须复制相同的字段三次。 例如:

     <% String opMode=(String)session.getAttribute("opMode");%>

       <%if(opMode.equals("ADD")){ %>          
        <s:textfield name="caserecord.case_Name" label="Case Name." size="25" />
        <%}%>  

       <%if((opMode.equals("VIEW")){ %>          
       <s:textfield name="caserecord.case_Name" label="Case Name." size="25" disabled="true"/>
        <%}%> 

        <%if((opMode.equals("UPDATE")){ %>          
       <s:textfield name="caserecord.case_Name" label="Case Name." size="25" />
        <%}%>

因此,有没有一种方法可以让我对所有三个任务使用相同的jsp,即添加、查看和更新,而无需复制字段


提前感谢。

您可以使用OGNL like修改字段

<s:if test="#session.opMode in {'ADD', 'VIEW', 'UPDATE'}">
  <s:textfield name="caserecord.case_Name" label="Case Name." size="25" disabled="%{#session.opMode == 'VIEW'?true:false}"/>
</s:if>


我不得不三次复制相同的字段。我不明白这一点。请解释哪些代码是重复的。我在会话中使用了scriplet&对于所有3个值,我制作了3个表单标记,其中包含相同的字段。请共享重复的代码以清晰显示。请参阅我更新了我的问题。对于相同的案例名称,我必须为不同的模式添加三个文本框。第一个案例和第三个案例的区别是什么。