我写了两个页面,
index.jsp<jsp:forward page="attribute/attribute.jsp">
<jsp:param name="attribute" value="铁"/>
</jsp:forward>attribute.jsp<%@ page language="java" import="java.sql.*" pageEncoding="GBK"%>
<%@page import="jdbc.jdbc"%>
<%
   request.setCharacterEncoding("GBK");
String attribute = request.getParameter("attribute");
Connection conn = jdbc.getConnection();
String sql = "select * from accouter where attribute='" + attribute+ "' order by grade asc";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
%>
<TR height=19>
<TD width="10%"><%=rs.getString("grade")%></TD>
<TD width="12%"><%=rs.getString("name")%></TD>
<TD width="8%"><%=rs.getString("attribute")%></TD>
<TD width="20%"><%=rs.getString("number")%></TD>
<TD width="50%"><%=rs.getString("assembled")%></TD>
</TR>
<%
}
%>
但是无法传值,index.jsp
无法显示,麻烦知道的帮忙看下,是不是个细节忘了,谢谢了

解决方案 »

  1.   

    你直接把参数放到URL后面看看。
      

  2.   

    怎么放?
    会不会是value传的中文问题
      

  3.   

    测试了一下,传递数字没有问题,看来是中文的问题,但是在页面里也设置了GBK了,郁闷啊。
      

  4.   

    url最好不要传中文,不然会很麻烦,乱码
      

  5.   

    主要是想做迭代用的,我项目是这样的,
    index.jsp
    负责显示,因为要显示不同的分类,所以想到了用jsp:forward 传值到xianshi.jsp里面查询出来,然后再index.jsp里面显示。
    -------------------
    index.jsp显示是:
    例如: 
    职称(下面显示的全是有职称的人,从数据库里面读取)
    1.xxxx
    2.XXXX
    奖金(下面显示全是有奖金的人,从数据库里面读取)
    1.xxxx
    2.XXXX
    城市户口(下面显示全是有城市户口的人,从数据库里面读取)
    1.xxxx
    2.XXXX
    (因为index.jsp页面显示的是按照,奖金,户口这样不同的分类在不同的类别下面全部显示出来,所以想到了用forward传值,但是试验后发现一个页面里面用几个forward,只显示一个,不知道是不是一个页面只能传一个值,多的话只接第一个值。
    不知道还有没有其他的方法,希望高手帮忙下,谢谢了!<jsp:forward page="xianshi.jsp">
    <jsp:param name="attribute" value="职称">
    </forward>
    ------------------
    <jsp:forward page="xianshi.jsp">
    <jsp:param name="attribute" value="奖金">
    </forward>)xianshi.jsp
    <%@ page language="java" import="java.sql.*" pageEncoding="GBK"%>
    <%@page import="jdbc.jdbc"%>
    <%
      request.setCharacterEncoding("GBK");
    String attribute = request.getParameter("attribute");
    Connection conn = jdbc.getConnection();
    String sql = "select * from accouter where attribute='" + attribute+ "' order by grade asc";
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery(sql);
    while (rs.next()) {
    %>
    <TR height=19>
    <TD width="10%"><%=rs.getString("grade")%></TD>
    <TD width="12%"><%=rs.getString("name")%></TD>
    <TD width="8%"><%=rs.getString("attribute")%></TD>
    <TD width="20%"><%=rs.getString("number")%></TD>
    <TD width="50%"><%=rs.getString("assembled")%></TD>
    </TR>
    <%
    }
    %>
      

  6.   

    如果是参数传递中的乱码问题,可以考虑用这个办法:
    在Tomcat的server.xml的两个Connector元素中加上URIEncoding= "UTF-8 "属性。
      

  7.   

    如果是中文乱码的话,把TOMCAT里面的配置文件,JSP的编码,再写个过滤器,统一编码
    你看看是不是路径有误
      

  8.   

    把你的两个页面的编码都该为UTF-8试试
      

  9.   

    attribute.jsp 你设置了GBK,但是你的主页index.jsp 却没有设置GBK编码啊。 
      

  10.   

    String attribute = request.getParameter("attribute");
    在这句话下面加上attribute = new String(attribute.getBytes("ISO-8859-1"), "GBK");
      

  11.   

    解释一下,为什么request.setCharacterEncoding("GBK");这句话不好使,
    因为你直接转发过来的默认是get请求,而上面这句话是针对post请求,明白了吧!
    现在用jsp标签的人很少啊,鼓励一下!
      

  12.   

    请问, 现在不使用jsp标签,那使用的是什么标签啊,谢谢
      

  13.   

    我现在还没有毕业,所以还有好多的不懂啊, 希望在这儿跟着大家一块儿学习,在外面使用jsp脚本的还有吗? 
      

  14.   

    楼主很有想法啊,呵呵,你的那个确实不太好用,按照你的思路,我也写了一个
    index.jsp页(只贴关键代码了)
    职称:
    <jsp:include page="xianshi.jsp">
      <jsp:param name="attribute" value="职称"/>
    </jsp:include>
    奖金:
    <jsp:include page="xianshi.jsp">
      <jsp:param name="attribute" value="奖金"/>
    </jsp:include>然后你那个xianshi.jsp 接收value的值就可以了,我简单的写了个HR项目,用你的思路搞定,按照我给你说的试试看,应该是没有问题的。
      

  15.   

    使用 URLEncoder.encode 传递中文
      

  16.   

    现在由MVC模式开发的WEB项目,大多都使用Struts框架,所以都用struts标签,当然struts标签的原理是跟jsp标签是一样的,只不过功能更高级一些,功能更强大一些,之所以这么说,是因为纯的MVC模式不掺杂框架的开发,也很少有人有标签的,基本都用java代码!