struts 1.0逻辑标签选择 - if / else逻辑

时间:2013-02-26 14:57:32

标签: java jsp struts

我所拥有的是下拉列表。当用户选择某个选项时,每个选项代表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,它似乎使用下面的taglib在JSP页面上传递一个值。这对我不起作用,因为我想在服务器端传递值 FROM 一个Java类。

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

2 个答案:

答案 0 :(得分: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" %>

答案 1 :(得分:0)

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

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

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

从上面的文档链接:

注意:与此字段关联的基础属性值应为boolean类型,并且您指定的任何值应对应于指示true值的字符串之一(“true”,“yes”或“上”)。如果您希望使用一组相关的字符串值,请考虑使用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>