我所拥有的是下拉列表。当用户选择某个选项时,每个选项代表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 %>" >
答案 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>