我有一个搜索栏,根据我输入的内容返回匹配的数据。为了使用户友好,即使在按下提交后,我也将输入值保留在栏中。但是,当我最初加载我的页面而没有进行任何搜索时," null"出现而不是我的占位符。首次运行页面时如何使占位符成为默认值?当我运行我的项目时,我也有一个NullPointerException,我想知道这是否相关。
以下是搜索条形码:
<form method="post" id="form1" action="index.jsp">
Search <input type="text" name="searchRequest"
placeholder="Enter your search here..."
value="<%=request.getParameter("search")%>" /> <input type="submit"
id="button1" value="Search" name="submit" />
</form>
答案 0 :(得分:2)
执行此操作的一种方法是先检查null。要执行此下载jstl-1.2.jar
文件,请将其放入WEB-INF/lib
并使用以下代码修改您的jsp。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> // add at start of jsp page
<form method="post" id="form1" action="index.jsp">
Search <input type="text" name="searchRequest" placeholder="Enter your search here..." <c:if test="${request.getParameter != null}">value="<%=request.getParameter("search")%>"</c:if> />
<input type="submit" id="button1" value="Search" name="submit" />
</form>
答案 1 :(得分:1)
对我而言,value="<%=request.getParameter("search")%>"
正在为您提供空指针异常并使其最初为空,这一点非常明显。由于它们最初没有get参数(未设置),因此该值为null。价值应该是&#34;&#34;或者最初初始没有值,并在用户输入内容后更改。你可以用php来做这个,javascript,或者可能是其他语言。如果request.getParameter()允许您使用默认参数,则应将其设置为&#34;&#34;,或者您应该让搜索URL最初具有空字符串参数。他们有很多方法来模仿你的行为。
答案 2 :(得分:1)
而不是编写长代码只需将${search}
替换为<%=request.getParameter("search")%>
您将不再收到空。这个EL(表达语言)。添加它不需要额外的库,它可以正常工作。 我可以通过个人经验告诉你。