2

我所拥有的是一个下拉列表。当用户选择某个选项时,其中每个选项代表 Java 服务器端的特定字符串。

现在,Java 服务器端能够检查选择了哪个选项,以及对应的数字。目前,我能够在 Java 后端输出值,而不是在 JSP 页面上。

Struts 1.0 是否有 if/else 标签?

我不确定哪个逻辑标记最适合为前端处理传递 Java 值:

JSP 页面

if(value = 666)
   this textbox is readonly
else
  this textbox row is active

到目前为止我的研究:

看起来logic:equal,它似乎使用如下标记库在 JSP 页面上传递了一个值。这对我不起作用,因为我想服务器端的 Java 类中传递值。

<logic:equal name="name" property="name" value="<%= theNumber %>" >
4

2 回答 2

5
  <c:choose>
     <c:when test="${the number}">
         Both are equal.
     </c:when>
     <c:otherwise>
         Both are not equal.
     </c:otherwise>
     </c:choose>

这是jstl标签

you need to use
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
于 2013-02-26T15:02:33.593 回答
0

JSTL 答案是最好的答案,但是,就我而言,它是一个没有 JSTL 的旧 Java 遗留应用程序,我无法介绍它。

这是我对一些遗留 Struts 1.3 代码的要求。设置一个复选框以匹配来自数据库调用的表单 bean 的值,如“Y”、“N”、“”或 null。

我还必须保留在 struts 逻辑标签中,而不是使用 JSTL,这是我最初的偏好。我知道 struts文档 说复选框应该等同于 actionForm 中的布尔变量,但我使用了一个字符串值,它有效。

从上面的文档链接:

注意:与此字段关联的基础属性值应为布尔类型,并且您指定的任何值都应对应于指示真值(“true”、“yes”或“on”)的字符串之一。如果您希望使用一组相关的 String 值,请考虑使用 multibox 标签。 我曾考虑将我的字符串值转换为表单中的布尔值,但它以这种方式获取字符串。

最后,我使用了一些 javascript 来设置检查状态。所有这些都是冗长的,并不是最好的解决方案,但面对需求,它确实有效。

这是代码:

<logic:equal name="<%=formName%>" property="formInd" value="Y">
                <html:checkbox name="<%=formName%>" onchange="setDataChanged()" property="formInd"/>
                <script type="text/javascript" LANGUAGE="JavaScript">
                    document.<%=formName%>.formInd.checked = true;
                </script>              
            </logic:equal>
            <logic:equal name="<%=formName%>" property="formInd" value="N">
                <html:checkbox name="<%=formName%>" onchange="setDataChanged()" property="formInd"/>
                <script type="text/javascript" LANGUAGE="JavaScript">
                        document.<%=formName%>.formInd.checked = false;
                </script>              
            </logic:equal>
            <logic:empty name="<%=formName%>" property="formInd" >
                <html:checkbox name="<%=formName%>" onchange="setDataChanged()" property="formInd"/>
                <script type="text/javascript" LANGUAGE="JavaScript">
                        document.<%=formName%>.formInd.checked = false;
                </script>              
            </logic:empty>
于 2014-03-26T17:26:16.860 回答