seam 中文乱码

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"

你可能感兴趣的:(seam,jbossseam)