Struts2对值的推断
目的是想将jsp中的input输入:
<input class="inputstyle" type="text" value="<s:property value="#result.maritalStatus"/>" name="updatePersonalInfo.maritalStatus" />
改成JSP部分select选择:
<input style="display:none;" type="text" id="selectMerrageValue" name="updatePersonalInfo.maritalStatus" />
<select class="selectstyle" id="selectMerrage">
<s:if test="#result.maritalStatus==null">
<option value="--请选择--">--请选择--</option>
<option value="是">是</option>
<option value="否">否</option>
</s:if>
<s:else>
<s:if test="#result.maritalStatus=='是'.toString()">
<option value="是" selected="selected">是</option>
<option value="否">否</option>
</s:if>
<s:else>
<s:if test="#result.maritalStatus=='否'.toString()">
<option value="是">是</option>
<option value="否" selected="selected">否</option>
</s:if>
<s:else>
<option value="--请选择--">--请选择--</option>
<option value="是">是</option>
<option value="否">否</option>
</s:else>
</s:else>
</s:else>
</select>
和JS部分取值赋值:
$(function(){
var maritalStatus = document.getElementById("selectMerrage").value
$("#selectMerrageValue").val(maritalStatus);
});
可是一直出现故障。
測试部分例如以下:
<input type="text" value="<s:property value="#result.maritalStatus"/>" />
有值;
<s:property value="#result.maritalStatus"/>
firebug看html中有值;
${result.maritalStatus}
firebug看html中有值。
终于发现<s:if test="#result.maritalStatus=='是'">和<s:if
test="#result.maritalStatus=='否'">两句
始终不能正确的被推断。最后发现是由于#result.maritalStatus这个字段是String类型。必须在推断的时候加上‘是'.toString()。
附上查询到的帮助博客: http://guokejia1986.blog.sohu.com/174626148.html
博客内容:
Struts2 用 s:if test 推断String类型的对象属性值和单字符是否相等的问题
首先,这里所指的单字符形如:Y。男。
有两种做法:
a. <s:if test='news.sfsecret=="是"'>
b. <s:if test="news.sfsecret=='是'.toString()">
解释例如以下:
由于java是强类型语言,单引號表示char类型,而双引號则表示String类型。所以a中能够正常使用。而b中则须要用toString()方法将char类型转为String类型。
事实上单纯的input改成select也能够用这种方法,当中JSP部分select选择:
<input style="display:none;" type="text" id="selectMerrageValue" name="updatePersonalInfo.maritalStatus" />
<select class="selectstyle" id="selectMerrage">
<option value="是" id="selectYes">是</option>
<option value="否" id="selectNo">否</option>
</select>
和JS部分取值赋值:
$(function(){
var maritalStatus= "<s:property value='#result.maritalStatus' escape='false'/>";
if(maritalStatus=="是")
$("#selectYes").attr("selected",selected);
else
$("#selectNo").attr("selected",selected);
});
这样做的话就不用Struts的<s:if test ="">来推断了,直接在JS里面定义一个变量取值来推断。
Struts2对值的推断的更多相关文章
- 你好,C++(11)如何用string数据类型表示一串文字?根据初始值自动推断数据类型的auto关键字(C++ 11)
3.5.2 字符串类型 使用char类型的变量我们可以表示单个字符,那么,我们又该如何表示拥有多个字符的字符串呢? 我们注意到,一个字符串是由多个字符串连起来形成的.很自然地,一种最简单直接的方法就 ...
- struts2(二)值栈 threadlocal ogal ui
值栈(重要)和ognl表达式 1. 只要是一个mvc框架,必须解决数据的存和取的问题 2. Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 3. 把数据存在值栈中,在页面上利用 ...
- struts2取值
http://www.cnblogs.com/yangy608/archive/2010/11/23/1885256.html struts2取值 1.标签取值方式一 通过<s:property ...
- Struts2的值栈和OGNL牛逼啊
Struts2的值栈和OGNL牛逼啊 一 值栈简介: 值栈是对应每个请求对象的一套内存数据的封装,Struts2会给每个请求创建一个新的值栈,值栈能够线程安全的为每个请求提供公共的数据存取服务. 二 ...
- 【Java EE 学习 36】【struts2】【struts2系统验证】【struts2 ognl值栈】【struts2 ongl标签】【struts2 UI标签】【struts2模型驱动和令牌机制】
一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的 ...
- Struts2向值栈中压入属性的方式
Struts2在初始化Action的时候会先向值栈中压入一个action对象,里面包含了各个属性,这些属性是怎么被压进去的?或者说是根据什么来压入的?直到2016年5月5日才理解,原来是在初始化act ...
- Struts2 的 值栈和ActionContext
1.ValueStack 和 ActionContext 的关系与区别: -- 相同点:它们都是在一次HTTP请求的范围内使用的,它们的生命周期都是一次请求 -- 不同点:ValueStack 分为对 ...
- struts2域值操作
1.通过servletActionContext类 /*** * 获得方式一:通过ServletActionContext类 * 提供的静态方法获得原始的web对象,直接和servlet的API耦合 ...
- Struts2的值栈和对象栈
ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContex ...
随机推荐
- Axure 实现数字自动加键功能(点击“+”数字加1,点击“-”数字减1)
百度网盘:http://pan.baidu.com/s/1gfPQ9V1 在上面的元件库中,拖“数字框(仅正数)”即可实现自动加减的功能 如图:
- Ubuntu16.04 安装Processing
下载 在 https://processing.org/ 上下载最新的linux 64bit版本gzip文件, 当前是 http://download.processing.org/processin ...
- JavaScript原生对象及扩展
来源于 https://segmentfault.com/a/1190000002634958 内置对象与原生对象 内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始 ...
- Android拦截外拨电话
拦截监听外拨的电话,并进行处理: 向外拨打电话时系统会发出一个有序广播,虽然该广播最终会被拔号器里的广播接收者所接收并实现电话拔打,但我们可以在广播传递给拔号广播接收者之前先得到该广播,然后清除传递给 ...
- Inside NGINX: How We Designed for Performance & Scale
NGINX leads the pack in web performance, and it’s all due to the way the software is designed. Where ...
- CocoaAsyncSocket UDP发送数据超过包大小限制(Message too long)
最近在做iOS上,基于UDP传输音视频时遇到的一个问题,这边纪录一下: 由于考虑实时性比较高,所以采用了 CocoaAsyncSocket 的UDP框架来实现,将视频切割成一帧帧的图片发给服务端,不过 ...
- c++ 多个线程读一个线程写同步
这种情况一般多个线程读是不需要加锁的.就在写的时候需要加锁. 那么要做的就是让不写的时候,读不受同步限制.让多线程自由的读. 这个时候就要用读写锁 boost已经有读写锁,而c++ 14才有读写锁. ...
- android开发学习---linux下开发环境的搭建&& android基础知识介绍
一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...
- 【转】TeXmacs:一个真正“所见即所得”的排版系统
TeXmacs:一个真正“所见即所得”的排版系统 好久没有推荐过自己喜欢的软件了,现在推荐一款我在美国做数学作业的私家法宝:TeXmacs.我恐怕不可能跟以前那么有闲心写个长篇的 TeXmacs 说明 ...
- C++项目參考解答:求Fibonacci数列
[项目:求Fibonacci数列] Fibonacci数列在计算科学.经济学等领域中广泛使用,其特点是:第一.二个数是1,从第3个数開始,每一个数是其前两个数之和.据此,这个数列为:1 1 2 3 5 ...