关于中文乱码:
1,解决GET方式中的中文编码问题。
在Jsp中如果用中文方式传递编码,一定要保证传递过去的是U8;
情况一:在便签中<s:action >
可以使用<s:param>参数,作为参数传递。
情况二:在js中:
使用encodeUrl编码
<td> <s:a action="processDefinition_delete" onclick="return delConfirm()"> <s:param name="key" value="%{key}"></s:param> 删除 </s:a> <a href="javascript: showProcessImage( '${id}' )">查看流程图</a> </td>
<script type="text/javascript"> function showProcessImage( pdId ){ pdId = encodeURI(pdId); // 进行URL编码 var url = "processDefinition_showProcessImage.do?id=" + pdId + "&t=" + new Date(); window.showModalDialog(url, null, "dialogHeight:500px, dialogWidth:450px;resizable:yes"); } </script>
action处理:
/** 删除,删除的是指定key的所有版本的流程定义 */ public String delete() throws Exception { key = new String(key.getBytes("iso8859-1"), "utf-8"); // 解决GET方式传递的中文乱码的问题 processDefinitionService.deleteByKey(key); return "toList"; }
/** 查看流程图(xxx.png) */ public String showProcessImage() throws Exception { id = new String(id.getBytes("iso8859-1"), "utf-8"); // 解决GET方式传递的中文乱码的问题 inputStream = processDefinitionService.getImageResourceAsStreamByPdId(id); return "showProcessImage"; }