jbossseam 版本为 2.1 web服务器为jboss 4.2;
在普通没有中文的情况下.点击一个查询一般的链接如下:
<div class="actionButtons" align="center"> <h:commandButton id="search" value="搜索" action="/transAccounts/TemporaryAccountList.xhtml" styleClass="tools_button" />
</div>
如果其中有中文参数:
<param name="mobile" value="#{temporaryAccountList.mobile}" /> <param name="idcard" value="#{temporaryAccountList.idcard}" /> <param name="accounttype" value="#{temporaryAccountList.accounttype}" /> <param name="realname" value="#{temporaryAccountList.realname}" />//realname 为用户姓名 <param name="status" value="#{temporaryAccountList.status}" />
其中realname 为中文..在点击查询时对应的ejb的类中
private String realname; 这里属性的值就会变成乱码..
这里就需要把上面的那个查询按钮的action属性改成实际的方法..即可解决问题;如下:
<div class="actionButtons" align="center"> <h:commandButton id="search" value="搜索" action="#{temporaryAccountList.doResult()}" styleClass="tools_button" /> </div>
对应ejb中添加doResult()方法如下:
其中getResultList 才是实际获取数据集合的方法..
public void doResult(){ queryFlag = true; } @Restrict("#{permissionChecker.hasPermission('temporaryaccount', 'query')}") public List<AccountPrizeTransMapping> getResultList(){ if(queryFlag){ return super.getResultList(); } return null; }
其实解决这个问题的最好方法是修改在jboss内嵌的tomcat 里的server.xml
<Connector port="8080" 这里添加 URIEncoding="UTF-8"