jquery表单提交到struts2中文乱码
2016-01-20 11:58
543 查看
在jsp页面顶部加 <%@ page language="java" pageEncoding="UTF-8"%> <% response.setCharacterEncoding( "UTF-8");%> 在struts2的action里, str = new String(str.getBytes("ISO-8859-1"),"UTF-8");
方法二,在web 中引用filter
<filter> <filter-name>CharFilter</filter-name> <filter-class>com.poobo.intelligentkitchen.filter.CharsetFilter</filter-class> </filter> <filter-mapping> <filter-name>CharFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping>
filter代码如下,Struts2 是通过request.getParameterMap()来获取属性的,要重写这个方法,而
getParameter 是用来获取参数的
public class CharsetFilter implements Filter {@Overridepublic void destroy() {// TODO Auto-generated method stub}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {try{HttpServletRequest httpRequest = (HttpServletRequest)request;String method = httpRequest.getMethod().toLowerCase();System.out.println("### method is "+ method);if(method.equals("post")){//如果 是post,即表单方法,直接设置charset即可request.setCharacterEncoding("UTF-8");}else if(method.equals("get")){request.setCharacterEncoding("UTF-8");request = new HttpServletRequestWrapper(httpRequest){@Overridepublic Map<String, String[]> getParameterMap() {Map<String,String[]> map = super.getParameterMap();Set<Entry<String,String[]>> set = map.entrySet();Iterator<Entry<String,String[]>> it = set.iterator();Map<String,String[]> newmap = new HashMap<String, String[]>(); while(it.hasNext()){Entry<String,String[]> entry = it.next();System.out.println("KEY:"+entry.getKey());String[] values = entry.getValue();String name = entry.getKey();{String newvalues[] = new String[values.length];for(int i=0; i<values.length;i++){String value = values[i];try {value = new String(value.getBytes("iso8859-1"),"UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}newvalues[i] = value; //解决乱码后封装到Map中}newmap.put(name, newvalues);}}return newmap;}@Overridepublic String[] getParameterValues(String name) {// TODO Auto-generated method stubreturn super.getParameterValues(name);}@Overridepublic String getParameter(String str){try{String strTr = new String(super.getParameter(str).getBytes("ISO-8859-1"),"GBK");return strTr;}catch(Exception e){return null;}}};}chain.doFilter(request, response);}catch(Exception e){}}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}
input 为text类型, name 为 statrtTime endTime 可以自动调用到datePicker 控件?
相关文章推荐
- jquery全选/不选
- 让input框实现类似百度的搜索提示(基于jquery事件监听)
- jquery获取元素高度
- [置顶] 当jQuery遭遇CoffeeScript——妙不可言
- jQuery校验
- jquery.timers使用说明
- peity(jQuery 插件可以将元素内容转换为一个小的 <svg> 饼图,圆环图,条形图和折线图)
- JQuery播放暂停HTML视频
- jquery plugins —— Chosen
- jQueryRegLogin弹出可拖动的登录和注册
- JQuery日历插件My97DatePicker日期范围限制
- 在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
- 解决Jquery下拉框数据动态获取的问题
- 在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
- JQuery日历插件My97DatePicker日期范围限制
- 属于你的jQuery提示框(Tip)插件
- Jquery中巧用Ajax的beforeSend方法
- jQuery图片轮播插件
- springmvc+jquery+json
- jquery div显示与隐藏