以下是用jstl写的一个checkbox
<c:choose>
     <c:when test="${row1.isTest}"><input type=checkbox value="yes" name="isTest" onclick="return setTest(this.value,'${row1.courseId}','${row1.courseName}')" checked></c:when>
      <c:otherwise><input type=checkbox value="no" name="isTest" onclick="return setTest(this.value,'${row1.courseId}','${row1.courseName}')"></c:otherwise>
</c:choose>
以下是客户端的HTML源文件,12后面多了好多空格,弹出对话框就不好看了。请问如何去掉,
最好不要用JS来处理,而是直接发送到客户端的HTML就把它去掉。
 <input type=checkbox value="no" name="isTest" onclick="return setTest(this.value,'12                  ','12                  ')">

解决方案 »

  1.   

    这应该不是jstl的问题,你查一查看是不是你那个值本身就有许多空格?
      

  2.   

    我是说你的row1.courseName变量本身的值可能包含了空格,你查看一下是不是?
      

  3.   

    如果实在解决不了,就在弹出对话窗的时候解决,去掉多余的空格(this.value,'12                  '.replace(/(^\s*)|(\s*$)/g, ""),'12                  '.replace(/(^\s*)|(\s*$)/g, ""))
      

  4.   

    应该你传过来的值本身含有空格,JSTL是不会为你添加空格的
      

  5.   

    还是我搞错了,空格实际上还是插入到数据库里面去了。
    我从网上看到下面这段话。
    对于定长度的SQL数据类型CHAR(n),当从数据库管理系统中获得的结果集提取该类型的数据时,JDBC会为其构造一个长度为n的String对象来代表他,如果实际的字符个数不足’n’,系统会自动为String对象补上空格。当向数据库管理系统写入的数据类型应该是CHAR(n)时,JDBC也会将该String对象的末尾补上相应数量的空格。怎么不让空格插入到数据库中呢?我用的是varcha20,所以它总是补一大堆空格,直到20,
     proc = conn.prepareCall("{call sp_course_insert(?,?,?)}");
                proc.setString(1,c.getCourseId().trim());
    用trim也不行。