日期:2014-05-19  浏览次数:20662 次

struts2标签可以用三目运算符吗?
<s:if test="enterVo!=null">
<input type="text" id="made_enterprise" name="entity.made_address" value="<s:property value='enterVo.register_address'/>"/>
</s:if><s:else>
<input type="text" id="made_enterprise" name="entity.made_address" value="<s:property value='entity.made_enterprise'/>"/>
</s:else>
这样写可以,可是感觉很不好。
我在看了http://java4evero.iteye.com/blog/1390505这篇博文后。改成这样了
<input type="text" id="made_enterprise" name="entity.made_address" value="<s:property value='${enterVo!=null?"enterVo.register_address","entity.made_enterprise"}'/>"/>
大家说说这种思路可以实现吗、?我哪个地方错了?谢谢了哈~

------解决方案--------------------
第一种写法 感觉不好 指的是? 其实有的时候 写法这个东西 如果你感觉不好 你要说出具体的原因,到底不好在哪 差在哪,第2种写法 没见过 可以研究研究,通常都用第一种写法
------解决方案--------------------
可以使用3目运算符的
------解决方案--------------------
<input type="text" id="made_enterprise" name="entity.made_address" value="<s:property value='${enterVo!=null?"enterVo.register_address","entity.made_enterprise"}'/>"/>
按照java思想 应该可以:看起来就是 从后台得来的enterVo进行判断 true:返回enterVo.register_address 给input value false就给entity.made_enterprise

我感觉这样写也不怎么好,虽然简话的代码量,但是还得细看,大致看一下还不一定能看出来。
相反<s:if>....<s:else> 一眼就能看出来是什么东西,说明这里有判断显示传值。 为了给以后接受2次开发的人,也是负责的!2手活不好做呀! 还有各种大神的各种奇怪想法而写的代码 要命呀!
好代码是言简意赅! 并不是光言简!