JSP学习之表单无法正常显示

在JSP文件中,当在表单内加入字符串长度判断的if语句后,表单无法正常显示。通过注释if语句后,表单能正常显示。问题出在判断条件上,修正后的代码正确处理了表单输入为空的情况,解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP学习之表单无法正常显示

问题描述

在jsp文件中,加入随string类型的长度判断if语句之后,表单无法正常显示出来。问题代码如下:
问题代码

<body>
    <%
    HttpSession sessionId=request.getSession();
    if (session.isNew()){
        response.getWriter().println("session创建成功,session的id是:"+sessionId);
    }else {
        response.getWriter().println("服务器已经存在该session了,session的id是:"+sessionId);
    }
    String str = request.getParameter("boy");
    /*---------------------问题部分--------------------*/
    if (str.length()==0){
        response.getWriter().println("session的id是:"+sessionId);
        session.setAttribute("txt",new String());
    }else {
        session.setAttribute("txt",str);
    }
    /*-------------------------------------------------*/
%>
    <form action="inputString.jsp" method="post" name="form">
        <p>输入字符串:</p>
        <input type="text" name="boy">
        <input type="submit" value="提交" name="submit">
    </form>
    <a href="computer.jsp">点击转到computer.jsp页面</a>

</body>

网页情况
在这里插入图片描述

问题检查

注释掉if部分语句,发现from表单可以正常显示,但是不懂为什么会这样。
注释部分代码

//    if (str.length()==0){
//        response.getWriter().println("session的id是:"+sessionId);
//        session.setAttribute("txt",new String());
//    }else {
        session.setAttribute("txt",str);
//    }

网页情况
在这里插入图片描述

问题解决

问题似乎出现在判断语句上,原代码if (str.length()==0)我是想对当表单输入为空时的情况做一个txt的创建和赋予空字符串的操作。
但是当表单输入为空时str==null,所以判断语句应该改为if (str==null)才对。
最终版代码

<body>
    <%
    String str = request.getParameter("boy");
    if (str==null){
        session.setAttribute("txt",new String());
    }else{
        session.setAttribute("txt",str);
    }
%>
    <form action="inputString.jsp" method="post" name="form">
        <p>输入字符串:</p>
        <input type="text" name="boy">
        <input type="submit" value="提交" name="submit">
    </form>
    <a href="computer.jsp">点击转到computer.jsp页面</a>
</body>

网页情况
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值