-
struts2的 if 标签用法的疑问10
struts2 的if标签是经常用到的 ,但是我却经常不能用好 ,非常苦恼,我的错误如下:
我写了一个下拉框,需要用if来判断 option 中的 value ,决定是否需要选中此项
<select name="remarks">
<option value="">---请选择---</option>
<option value="购入" <s:if test="%{remarks} == '购入'">selected</s:if> >购入</option>
<option value="自备" <s:if test="%{remarks} == '自备' ">selected</s:if> >自备</option>
</select>
我的期望是 :当%{remarks}取得的值为购入时 ,选中购入选项,否则选中自备选项。
可是如何都没有完成这个期望。
于是我做了一些测试:
在<select ../> 之前插入
<s:property value="%{remarks}"/> 页面显示结果: 购入
${remarks} 页面显示结果: 购入
于是我这样写:
<option value="购入" <s:if test="${remarks} == '购入' ">selected</s:if> >购入</option> :出错!!!
<option value="自备"
<s:if test=" <s:property value="%{remarks}"/> == '自备' ">selected</s:if> >自备</option> :出错!!!
第1个下划线处 %{}应该是没有取到值
第2 和 第3下划线处都出错了,不知这三处原因分别是什么呢?
有知道的并且路过了,请您支招一二 ,
小弟万分感激。。
问题补充:kfc_davy 写道<s:select name="remarks" value="%{remarks}">
....
</s:select>
用struts2的标签就可以了,何必这样呢?
我需要的是 根据取到的%{remarks}判断需要选中哪一个option,
我现在就去试一下你的建议 。
问题补充:kfc_davy 写道<s:select name="remarks" value="%{remarks}">
....
</s:select>
用struts2的标签就可以了,何必这样呢?
呃 还是没有办法试出来咯。。
问题补充:蔡华江 写道'购入'这里能用单引号吗?
去掉单引号我有试用也是不行
这里的单引号应该是为了和外面的 双引号区别开来吧,应该也是表示字符串的意思吧。
问题补充:kfc_davy 写道remarks 是怎么设值进来的?
是一个pojo的一个属性,这个pojo在action中被定义set()/get(),查询完数据库后把这一pojo类型的数据放进一list,传回页面的。
问题补充:关于根据取得 remarks 来判断 需要选中哪一个 option 已经有了一种可行的方案
<option value='购入' ${model.materialRemarks=="购入"?'selected':''} >购入</option>
<option value="自备" ${model.materialRemarks=="自备"?'selected':''} >自备</option>
已试验成功。
关于,后面两个下划线错误的原因,希望有人能够 ,描述一二哦。
问题补充:蔡华江 写道引用<option value="购入" <s:if test="%{remarks} == '购入'">selected</s:if> >购入</option>
因为字符串必须用双引号定义<option value="购入" <s:if test="%{remarks} == \"购入\"">selected</s:if> >购入</option>
即可
引用<option value="购入" <s:if test="${remarks} == '购入' ">selected</s:if> >购入</option>
同上
注:${remarks}不知道要不要用双引号标注,这要看struts对el表达式的支持程度。具体怎么样,个人感觉要改为<option value="购入" <s:if test="\"${remarks}\" == \"购入\" ">selected</s:if> >购入</option>
引用<s:if test=" <s:property value="%{remarks}"/> == '自备' ">selected</s:if> >自备</option>
同上<s:if test=" <s:property value="%{remarks}"/> == "自备" ">selected</s:if> >自备</option>
1.谢谢你花这么多的时间 认真看我的问题 还有回答我的问题
2.我找到了我的代码的错误
改正后代码: <s:if test="%{remarks=='购入'}">购入</s:if>
原先代码为: <s:if test="%{remarks}=='购入'>购入</s:if>
3. <s:.... 和 ${} 是二种不同的东东, 它们可以用在同一个页面,但是不能 把 ${} 用在<s:..里面 。
4.实验了您的建议的方法,仍然是没有得到效果。
5.从您的建议中,我也有所收益。顺便提一下struts2的jsp页面中%{remarks=='购入'} 单引号中的 '购入' 确实是可以的。
6.感谢你的支持和帮助 , 所以给分。
2010年8月05日 17:42
7个答案 按时间排序 按投票排序
-
采纳的答案
引用<option value="购入" <s:if test="%{remarks} == '购入'">selected</s:if> >购入</option>
因为字符串必须用双引号定义<option value="购入" <s:if test="%{remarks} == \"购入\"">selected</s:if> >购入</option>
即可
引用<option value="购入" <s:if test="${remarks} == '购入' ">selected</s:if> >购入</option>
同上
注:${remarks}不知道要不要用双引号标注,这要看struts对el表达式的支持程度。具体怎么样,个人感觉要改为<option value="购入" <s:if test="\"${remarks}\" == \"购入\" ">selected</s:if> >购入</option>
引用<s:if test=" <s:property value="%{remarks}"/> == '自备' ">selected</s:if> >自备</option>
同上<s:if test=" <s:property value="%{remarks}"/> == "自备" ">selected</s:if> >自备</option>
2010年8月06日 13:12
-
你试equals了吗?类似这种<s:if test="'219.211.211.82'.equals(ipaddress)||'59.
2010年8月06日 12:58
-
你可以试试equals,<s:if test=' "购入".equals(${remarks})'> ,标签里支持写equals的,前提是字符串,当然你的是字符串。
2010年8月05日 21:48
-
<s:select name="remarks" value="%{remarks}">
....
</s:select>
用struts2的标签就可以了,何必这样呢?2010年8月05日 17:47
相关推荐
struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用
struts2标签库struts2标签库struts2标签库struts2标签库
Struts2-Tags_struts2标签用法
个人开发时遇到的struts标签的if标签是,将其功能遗忘,可以用来巩固记忆
struts2标签使用例子 struts2标签使用例子 struts2标签使用例子struts2标签使用例子
主要介绍了struts2的标签的详细使用例子说明
struts2标签使用方法以及el表达式的使用,整理收集供参考
struts2 optiontransferselect标签,其中包含一个jsp页面,可以将此jsp页面放入您的项目中,即可看到效果!
通过struts2 自定义标签实例,可以用这个对项目中的实现自定义标签。从而减少代码。
本代码主要给出Struts2的表单标签使用方法
Struts2标签库Struts2标签库Struts2标签库Struts2标签库Struts2标签库Struts2标签库
java Web开发,我们最常用的Struts2常用标签总结,帮助你Struts2常用标签有那些功能
Struts2标签库的组成 Struts2框架的标签库可以分为以下三类: 用户界面标签(UI标签):主要用来生成HTML元素的标签。 表单标签:主要用于生成HTML页面的FORM元素,以及普通表单元素的标签。 非表单标签:主要用于生成...
主要介绍Strus2中的通用标签,主要有, , , <s:if>, <s:elseif>, , , , , 等几个标签的具体用法,希望能对大家有帮助。
Struts2自定义分页标签很详细了,新手可以少走弯路,节约时间 资源包括了后台如何操作。
其实,开发自定义标签并不需要Struts2的支持,一般情况下,只需要继承javax.servlet.jsp.tagext.BodyTagSupport类,重写doStartTag,doEndTag等方法即可。这里在实现自定义标签时,继承的2个类分别是org.apache....
struts2_标签使用方法.docstruts2_标签使用方法.doc
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
Struts2常用标签详细介绍