【问题标题】:struts 1.0 logic tag choice - if/else logicstruts 1.0 逻辑标签选择 - if/else 逻辑
【发布时间】:2013-02-26 14:57:32
【问题描述】:

我有一个下拉列表。当用户选择某个选项时,其中每个选项代表 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 页面上传递了一个值。这对我不起作用,因为我想将值 FROM 传递给服务器端的 Java 类。

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

【问题讨论】:

  • 你问jsp标签上面的逻辑。你可以使用jstl标签
  • 不,我不是。但如果它解决了问题,我愿意接受各种解决方案
  • 我建议再看看 logic:equal;我相信你误会了。也就是说,当功能重叠时,我会使用 JSTL,尤其是在像这样的过时版本的 Struts 中。

标签: java jsp struts


【解决方案1】:
  <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" %>

【讨论】:

  • ${the number} jQuery?你有javascript版本吗?
  • 不,它是动作变量。我们在 struts2 中使用这样的。这可能在 struts1.0 中也可以工作
  • @bouncingHippo jQuery?!这是标准的 JSP EL 表示法。
【解决方案2】:

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

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

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

来自上面的文档链接:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2011-03-24
    相关资源
    最近更新 更多