如何创建一个只读标记字段的JSP自定义标记?

时间:2011-07-11 19:39:06

标签: java jsp jsp-tags

我想创建一个自定义标记,在JSP上标记一个字段readonly。 有任何建议如何实现这一目标?

3 个答案:

答案 0 :(得分:1)

我想有一些优雅和丑陋的方法来解决这个问题,我会从标准的if标签开始,除非你有特殊的需求,比如:

<input type="text" name="name" <c:if test="condition">readonly</c:if>>

答案 1 :(得分:0)

这个怎么样?你有一个bean有几个检查方法来返回布尔检查结果。然后使用<c:choose><c:when><c:otherwise>来模拟if -then-else

<c:choose>
      <c:when test="${!bean.isAuthorized}">
        <input type="text" name="name" readonly="readonly">
      </c:when>
     <c:when test="${bean.isCondition2}">
           ...........
      </c:when>
       <c:when test="${bean.isCondition3}">
           ...........
      </c:when>
      <c:otherwise>
         ...............
      </c:otherwise>
   </c:choose>

答案 2 :(得分:0)

我不确定是否可以使用自定义标签..

据我所知,您不希望使用围绕您的只读属性的多个if else语句来膨胀您的代码。如果您说有20个输入字段,所有这些字段都需要根据满足单个条件的情况进行读取(例如,一个用户只有readonly privaleges)..你真的不想要运行那次单次检查的处理开销20次..

您是否考虑过为表单创建单独的只读视图?并将你的if else条件包装在一组包含中?好的 - 你有代码复制(有最小化的方法),但这意味着你只有1次检查而不是20次?保持只读视图分离的另一个好处是,数据不一定必须显示在表单元素中,您可以自由地设置您想要的样式..

相关问题