聽到我實現了一個類來處理它。
package com.tsd.json;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.util.ValueStack;
import java.util.Locale;
import net.sf.json.JSONObject;
公共類LocaleHandler {
public static String Locale(String name)
{
ValueStack stack = ActionContext.getContext().getValueStack();
String result="";
HttpServletRequest request = ServletActionContext.getRequest();
Locale locale = (java.util.Locale)request.getSession().getAttribute("WW_TRANS_I18N_LOCALE");
String jsonData =(String)stack.findValue(name);
JSONObject json=JSONObject.fromObject(jsonData);
if(locale ==null)
{
HttpServletResponse response=ServletActionContext.getResponse();
locale=response.getLocale();
}
if (locale instanceof Locale)
{
result= json.getString(locale.getLanguage()+"_"+locale.getCountry());
}
return result;
}
}
和修改JSP如下:
<s:iterator value="categorylist">
<li class="mn_menu-active">
<a href="#">
<span>
<%=LocaleHandler.Locale("name") %>
</span>
<div class="clear"></div>
</a>
<ul>
<s:iterator value="children">
<li>
<a href="#">
<span class="ms_txt"> <%=LocaleHandler.Locale("name") %></span>
<div class="clear"></div>
</a>
</li>
</s:iterator>
</ul>
</li>
</s:iterator>