最近写点小项目,EL表达式老是出现这错那错的,为此花费了不少时间,今天随便记一下;
老是混淆哪里用%{} 哪里用${} 哪里不能用等等;
s:hidden当我们需要在表单里面用到<s:hidden name="" value=""/>时,value里面又不准用<s:property value=""/>,用${},如:<input type="hidden" value="${sector.sectorId}" id="sector_id"/>,或者 <s:hidden name="sector.sectorId" value="sector.sectorId"/>。
当是迭代的结果时,这样不行。最终试来试去,用<s:hidden name="discussion.id" value="%{#discussion.id}"/> 时可以了(discussion是 iterator 中id 取的值 )。当可以直接取从action传来的变量时 可以直接这样写:<s:hidden name="sector.sectorId" value="sector.sectorId"/>
href: 当我们需要在<a href=""> 中传递值时,能用的是${}, 但如果遇到迭代出来的结果时,好像就不能这么使用了,这时得用<s:property value+=""/>: 如:<li class="li_right"><a href="/weibo/discussions/deleteDiscussion.action?discussion.id=<s:property value='#discussion.id'/>&mid=2">删 除 </a></li> 其中 discussion是<s:iterator>中 id 的取值(<s:iterator value="discussions" id="discussion">)。
<s:date name format=“yyyy-MM-dd HH:MM:SS”/>,当此标签在s:iterator里面时,name应取为:<s:date name="#replyDiscuss.date" format="yyyy-MM-dd HH:MM:SS"/> ,replyDiscuss 为s:iterator 中id 的值。
只为笔记,欢迎改正指点。