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>
网页情况