初学jsp,想做这样一个程序:在一个页面中输入年龄,点击submit,接收数值,转到另一个页面,对数值进行判断(想用<C:choose>得到这个年龄是属于哪一类人。
第一个页面代码:
<body>
   <form action="9.jsp"  method="post">
    <input type="text" name="myage" />
    <input type="submit" value="提交" />
    <br>
    </form>
  </body>
第二个页面9.jsp
<body>
   <jsp:useBean id="userBean" class="com.sample.javaBean.userBean.userBean" />
  <jsp:setProperty property="age" name="userBean" param="myage"/>  
  ${userBean.age }
  <% int age=userBean.getAge();%>
     <c:choose>
        <c:when test="${age>70}">老年人</c:when>
        <c:when test="${age<=70&&age>35}">中年人</c:when>
        <c:when test="${age<=35&&age>18}">青年</c:when>
        <c:when test="${age<=18&&age>0}">少年或儿童</c:when>
        <c:otherwise>输入错误</c:otherwise>
   </c:choose>
  </body>
还有设好的关于age的javaBean
现在问题是输入什么值都在第二个页面输出: 输入错误。
应该age的值没有获取到吧。还有就是age是整型。

解决方案 »

  1.   

    不是用if else 标签吗?
      

  2.   

    Integer.parseInt(request.getParameter("myage"));
      

  3.   

    楼主,你提交表单的时候没有设置useBean所对应的属性,转了之后当然接收不到啦,我用纯js帮你实现了,希望对你有所帮助。
    index.jsp页面<%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
            <script>
                function setCookie (name,value,expires) {    
                    //cookie键值对 
                    var str = name + "=" + escape(value);
                    //设置cookie的有效期,以小时为单位
                    if(expires > 0){                               
                        var date = new Date();
                        var ms = expires * 3600 * 1000;
                        date.setTime(date.getTime() + ms);
                        str += "; expires=" + date.toGMTString();
                    }
                    document.cookie = str;
                }
                window.onload = function(){
                    document.getElementById("submitInfo").onclick = function(){
                        var value = document.getElementById("age").value;
                        setCookie("age",value,24);
                    }
                }
            </script>
        </head>
        <body>
            <form action="9.jsp">
                <input type="text" id="age" />
                <input type="submit" id="submitInfo" value="提交">
            </form>
        </body>
    </html>9.jsp页面<%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
            <script>
                function getCookie(cookie_name)  
                {     
                    var value = null;
                    var allcookies = document.cookie;  
                    var cookie_pos = allcookies.indexOf(cookie_name);  
                    // 如果找到了索引,就代表cookie存在,  
                    // 反之,就说明不存在。  
                    if (cookie_pos != -1)  
                    {  
                        // 把cookie_pos放在值的开始,只要给值加1即可。  
                        cookie_pos += cookie_name.length + 1;  
                        var cookie_end = allcookies.indexOf(";", cookie_pos);  
                        if (cookie_end == -1)  
                        {   
                            cookie_end = allcookies.length;  
                        }  
                        value = unescape(allcookies.substring(cookie_pos, cookie_end));  
                    }  
                    return value;  
                } 
                window.onload = function(){
                    var value = getCookie("age");
                    document.getElementById("getAge").value = value;
                    document.getElementById("guessAge").onclick = function(){
                        if(Number(value) > 70){
                            document.getElementById("showValue").innerHTML = "老年人";
                        }else if(Number(value)<=70 && Number(value) > 35){
                            document.getElementById("showValue").innerHTML = "中年人";
                        }else if(Number(value)<=35 && Number(value) > 18){
                            document.getElementById("showValue").innerHTML = "青年人";
                        }else if(Number(value)<=18){
                            document.getElementById("showValue").innerHTML = "少年或儿童";
                        }
                    };
                }
            </script>
        </head>
        <body>
            <input type="text" id="getAge" />
            <input type="button" id="guessAge" value="测试年龄范围"/>
            <div style="position: absolute;top: 40px;left: 20px;" id="showValue">
        </body>
    </html>
      

  4.   

    <%
    int age  = Integer.parseInt(request.getParameter("myage"));
    %>
      

  5.   

    用Integer.parseInt这个转换,抛出异常 NumberFormatException,这个该怎样解决?
      

  6.   

    抛异常的话,你就先写javascript过滤掉不是数字的哦,如果输入的不是数字就阻止表单提交,当输入数字的时候才允许提交就不得抛异常了噻