首次加载页面时,字段应为空白

时间:2012-08-15 02:37:51

标签: jsp

我正在创建一个jsp页面来测试验证器servlet以进行单一评估。

我是jsp的新手所以我只是想知道如何在第一页加载时确保该字段为空。

这个想法是,当提交表单时,它会被发送到一个servlet,它检查字段是否为空(它们具有用户输入的值),并将它们重定向回带有错误消息的表单,如果它们是空。

所以这里是我的jsp字段的样子片段:

<td class="formlabel">Name:</td>
<td><input type="text" size="27" id="name" name="name" value="<%= session.getAttribute("name")%>" /></td>

<%
if((String)session.getAttribute("name") == "") {
%>
    <span class="error">No name entered</span>
<%
}
%>

但目前我遇到的问题是会话属性为null。因此null出现在输入字段中。我不希望这是第一个jsp加载,我只是希望它是空白的。我该怎么做?

2 个答案:

答案 0 :(得分:4)

使用JSP EL:

<input type="text" name="name" value="${name}" />

当属性为null时,JSP EL不会输出任何内容。

无论如何都应该避免使用Scriptlets。

答案 1 :(得分:1)

您只需打破以下内容即可检查该值: value="<%= session.getAttribute("name")%> 分成几个陈述:

<%= String name = session.getAttribute("name");
    if(name == null) name = "";    
%>value="<%=name%>

但总的来说,我建议不要验证多个字段,而是建议在表单中添加另一个隐藏的输入参数,其中id =“submitted”和value =“Y”:

<input type="hidden id="submitted" name="submitted" value="Y">

然后添加一行检查此POST / GET参数:

String submitted = request.getParameter("submitted");

并将if条件更改为:

 <%if((String)session.getAttribute("name") == "" && "Y".equals(submitted)){%>

<强>注:
字符串比较(使用Java)应该使用equals() - 而不是==