Struts2 <s:param>标签:
写了一个<s:url>,给它附上了两个参数<s:param>,但后台Action始终无法得到第二个参数。写法如下(错误写法):
<a href=
"<s:url action='appAction'>
<s:param name="appId" value="%{#request.appId}" />
<s:param name="appOp" value="delete"/>
</s:url>"
target="_blank">
删除
</a>
正确的写法:
<a href=
"<s:url action='appAction'>
<s:param name="appId" value="%{#request.appId}" />
<s:param name="appOp">delete</s:param><!-- 参数值如果是常量,应该写为元素的值,而不是attribute。低级错误 -->
</s:url>"
target="_blank">
删除
</a>
2, 傻爆了的HQL和SQL混写:
写了一个分页查询的HQL:
String hql = "from App as model where model.name = ?"
+ " order by model.operation desc "
+ " limit ?, ?";
用getHibernateTemplate().find(hql,<para1_value>,<para2_value>,<para3_value>)执行查询时,总是报ordinal parameter mismatch
后一类仔细一看,HQL的前两行是HQL的语法,第三行 limit ?, ?是SQL的语法。
回到正确的做法:
Query query = session.createQuery(hql);
query.setParameter(0, <para1_value>);
……
return query.setFirstResult(start).setMaxResults(limit).list();
本文介绍了Struts2中<s:param>标签的正确使用方法,并纠正了一个常见错误。同时,针对HQL与SQL混合使用时出现的问题给出了正确的解决方案。
614

被折叠的 条评论
为什么被折叠?



