Spirng mvc 与 displaytag

阅读更多

   项目中采用 spring 3.0 mvc 和 displaytat

 在displaytag中 每次翻页采用的是get方式,如果加上查询,displaytag会自动将参数拼装一个链接 ,以get的方式提交到后台。

 

如果你查询的是中文,问题出来了,这个参数就会以乱码的形式穿到后台,当你查询后分页 就会导致数据不能出现。。。 此时 ,就是程序员的悲剧了。

 

 

当时我解决这个问题的时候也是很费劲,一度怀疑springmvc的get方法,后来又怀疑displaytag的内部构件是否出现了我问题。曾经想过改displaytag..... 

 

后来网上说 改tomcat 的配置问题,这里我没有尝试,因为开发的容器是tomcat 那如果部署的服务器不是tomcat 那我该如何?

 

 

 

 

这样改如果你有静态文件图片  比如 。。  [http://localhost:8080/community/images/我.jpg] 这样的路径就能准确的找到资源文件。。。。中文的“我”。这个并发主题,言归正传....

 

 

直接贴代码:

   

社区公告

标题名称:
类型:
${noticeList_rowNum} 查看 修改 删除

 

 

 

后来我 在这:

var titles = encodeURIComponent(encodeURIComponent($("#titleName").val()));

转码了两次.....

 

 

	@RequestMapping(method=RequestMethod.GET)
	public String list(HttpServletRequest request,HttpServletResponse response,Notice notice, Model uiModel){
		String pageIndexName = new ParamEncoder("noticeList").encodeParameterName(TableTagParameters.PARAMETER_PAGE);
		int pageIndex = ServletRequestUtils.getIntParameter(request,pageIndexName, 1);
		
		//获得当前登录的用户
		Long customerId = (Long) request.getSession().getAttribute(WebConfig.CUSTOMER_ID);
		Publisher publisher = null;
		if(customerId != null && !"".equals(customerId)){
			publisher = Publisher.findPublisher(customerId);
		}
	
		String title =request.getParameter("titleName");
		if(title != null && !"".equals(title.trim())){
			try {
//				title = new String(title.getBytes("ISO-8859-1"),"UTF-8");
				title=java.net.URLDecoder.decode(title,"UTF-8");/*需要处理异常*/
				notice.setTitle(title);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		//获得这个社区下 所有的公告	
		PageResult pageResult =  Notice.findNotics(notice.getTitle(),null,notice.getStatus(),notice.getUptown(),notice.getCommunity(),pageIndex, WebConfig.PER_PAGE);
		uiModel.addAttribute("noticeLists", pageResult.getItems());
		uiModel.addAttribute("total",pageResult.getTotal());
		uiModel.addAttribute("notice",notice);
		uiModel.addAttribute("statuss",AuditStatus.values());
		return "manager/notice/list";
	}
	

 

 

 

String title =request.getParameter("titleName");
		if(title != null && !"".equals(title.trim())){
			try {
//				title = new String(title.getBytes("ISO-8859-1"),"UTF-8");
				title=java.net.URLDecoder.decode(title,"UTF-8");/*需要处理异常*/
				notice.setTitle(title);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}

 

这一款就是就是转码的过程。。  我为什么想分享这样一篇文章来说明这样一件简单的事情?  只因当初我在这里走了弯路,我也知道是转码的问题 ,一时间居然不知道在那去转码,曾经嗨怀疑过spring 的get方式  以及  displaytag 对中文的支持.....

 

 

 

呵呵 方法论了。。。  欢迎加我q   125218619 讨论这个问题 或者 进入我的群讨论java的种种问题 :84436262 Java生活 部落

 http://url.cn/LIRAm2
分享中成长,交流中交往

大数据资料共享。

 

 

 

 

你可能感兴趣的:(MVC,公告,JavaScript,Tomcat,Spring)