首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jsp页面参数空格有关问题

2012-02-24 
jsp页面参数空格问题jsp页面如下:%@ page languagejava importjava.util.* pageEncodingUTF-8%

jsp页面参数空格问题
jsp页面如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
  String paraFiles = "";
  if (request.getParameter("filenames") != null && request.getParameter("filenames").length() > 0) {
  paraFiles = request.getParameter("filenames");
  }
  String[] strSelectItem = paraFiles.split(";");
%>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>JSP Page</title>
  </head>
  <body>
  <select id="selectFile">
  <option value="">----请选择----
  <%
  int i = 0;
  for (i = 0; i < strSelectItem.length; i++) {
  if (strSelectItem[i].trim().length()>0){
  %>
  <option value= <%=strSelectItem[i]%> ><%=strSelectItem[i]%>
  <%
  }
  }
  %>
  <input type="text" id="paraFiles" name="paraFiles" value=<%=paraFiles%>>
  </body>
</html>

当参数filenames="你好 .doc"的时候,<select>可以正常显示,但是<input type="text" id="paraFiles" name="paraFiles" value=<%=paraFiles%>>
这里只显示"你好",后面的就没有了,请问怎么解决?我看到有很多人说参数传递不要用空格,可是<select>里显示正常啊,如果不用空格,用别的替换,该怎么写呢?

[解决办法]
用 # 试试
[解决办法]
up
[解决办法]
paraFiles = request.getParameter("filenames").trim();
试试
[解决办法]
那是因为你value= <%=paraFiles%>没加双引号。
改成这样就好了value="<%=paraFiles%>"。
单引号应该也行
[解决办法]

[解决办法]
1.value="<%=paraFiles%>" value中添加引号,这是个习惯自己感觉这样做比较好
2.paraFiles = request.getParameter("filenames").trim(); 过滤掉带有空格的参数。那样就不会有问题了,trim()函数为系统自带,主要用来过滤空格和防止黑客sql注入技术
[解决办法]
看楼主挺厉害的怎么被这点问题给绊倒啦
[解决办法]
pageEncoding="UTF-8" 是不是存在编码问题呀?
paraFiles = request.getParameter("filenames").trim(); 只能去掉后面的空格吧
[解决办法]
<input type="text" id="paraFiles" name="paraFiles" value= "<%=paraFiles%>">加上 " 号
 我试了,可以!!
[解决办法]
结贴!!
楼主
[解决办法]
mark
[解决办法]

探讨
paraFiles = request.getParameter("filenames").trim();
试试

------解决方案--------------------


你可以引用个js文件,然后像他们说的,用trim()来将空格给去掉
[解决办法]

探讨
各位,我是参数中间带空格,比如“你好 我很好”,这个用trim可以去掉?
请看清楚啊。

[解决办法]
探讨
1.value=" <%=paraFiles%>" value中添加引号,这是个习惯自己感觉这样做比较好
2.paraFiles = request.getParameter("filenames").trim(); 过滤掉带有空格的参数。那样就不会有问题了,trim()函数为系统自带,主要用来过滤空格和防止黑客sql注入技术

[解决办法]
Java code
        String searchString = "你好 我很好 我非常非常的好";         String[] aArray = searchString.split("\\s+");         String newString="";        for (int i = 0; i < aArray.length; i++) {             newString+= aArray[i];         }        System.out.println(newString);
[解决办法]
在传递参数前用java.net.URLEncoder.encode(String s)对参数编码一下,它会将空格转换为+号,在接收后用
java.net.URLDecoder.decode(String s)对参数反编码试试!
[解决办法]
要去掉空格我感觉这段不错:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JsExample-8</title>
</head>
<script type="text/javascript">
String.prototype.Trim = function(){return this.replace(/(^\s*)|(\s*$)/g,"");}
String.prototype.LTrim = function(){return this.replace(/(^\s*)/g,"");}
String.prototype.RTrim = function(){return this.replace(/(\s*$)/g,"");}

var str=" abc cd ";
 
var Lstr=" abc cd ef";
 
var Rstr=" abc cd ";

 
str=str.Trim();
  
Lstr=Lstr.LTrim();
  
Rstr=Rstr.RTrim();

  
window.document.write("*"+str+"*"+"<br>");
  
window.document.write("*"+Lstr+"*"+"<br>");

window.document.write("*"+Rstr+"*"+"<br>");
</script>

<body>

</body>
</html>
[解决办法]
paraFiles = request.getParameter("filenames").trim(); 

热点排行