// index.jsp
<form method="post" action="backend.jsp">
<input type="text" name="one" />
<input type="submit value="Submit" />
</form>
在backend.jsp中request.getParameter(“one”)是什么;返回?
request.getParameter("one").getClass().getName();
返回java.lang.String,所以它必须是一个String吗?
但是我做不到
String one = request.getParameter("one");
if (!"".equals(one)) {}
或
if (one != null) {}
这很明显,因为变量不会返回null。是
if (one.length() > 0) {}
唯一可行的方法,还是有更好的解决方案或更好的方法?我正在考虑将这两个解决方案都放在jsp上。在这种情况下,使用servlet(尽管jsp是一个servlet)是一个不同的用例。
答案 0 :(得分:36)
根据Javadoc:
以String形式返回请求参数的值,如果是,则返回null 参数不存在。
请注意,可以提交一个空参数 - 这样参数就存在,但没有值。例如,我可以在URL中包含&log=&somethingElse
以启用日志记录,而无需指定&log=true
。在这种情况下,该值将为空字符串(""
)。
答案 1 :(得分:4)
String onevalue;
if(request.getParameterMap().containsKey("one")!=false)
{
onevalue=request.getParameter("one").toString();
}
答案 2 :(得分:2)
if (one.length() > 0) {}
和if (!"".equals(one)) {}
都将检查空的foo参数,如果在foo
文本中提交的表单没有值,则会获得一个空参数字段。
如果您有可能使用表达式语言来处理参数,则可以
在表达式中使用empty param.foo
访问它。
<c:if test='${not empty param.foo}'>
This page code gets rendered.
</c:if>