0

我希望将从简单的 HTML 表单收集的请求写入 Java 中的 HTTPRequest 对象;最终,我希望重新加载页面以根据用户从表单中所做的选择打印出不同的数据 - 而不依赖于 servlet。JSP 的 Java 代码部分如下所示:

if (request.getAttribute("month") == "January") {
    getSomeData;
}
else {
    getSomeOtherData;
}

实际的 HTML 代码如下所示:

<form name="month" method="post">
    <select name="monthField"
        <option value="January">January</option>
        <option value="February">February</option>
    </select>
    <input type="submit" value="Submit">
</form>
SHOWSOMEDATA

我省略了 action 字段,它可以很好地重新加载页面,但它似乎没有写入请求;原始代码(不能发布它 - 它是为了工作)有一个更复杂的 if/show 测试,并且页面每次都加载 ("month"==null) 案例,所以它显然没有正确发布。我该怎么做才能正确执行 POST 选项?

4

2 回答 2

1

如果您要提交页面,请使用monthField字段名称,因为这是分配给select输入框的名称。您还需要使用equals方法将字符串比较为:

   if ("January".eqauls(request.getParameter("monthField")) {

如果您想要不区分大小写的比较,请使用equalsIgnoreCase以下方法:

   if ("January".equalsIgnoreCase(request.getParameter("monthField")) {

如果您在请求中使用属性设置了值 asmonth,那么

   if ("January".eqauls(request.getAttribute("month")) {

或者

   if ("January".equalsIgnoreCase(request.getAttribute("month")) {

请注意:NullPointerException将字符串文字(例如“January”)作为比较的第一个参数比在为空时避免不需要的参数更可取request.getAttribute("month")

于 2012-12-26T01:40:43.757 回答
-1
  1. 您不能从客户端设置请求属性,只能设置请求参数。

  2. 看起来您的参数monthField在 HTML 中被调用。

  3. 您不能用于==比较字符串。

所以也许你想要

if ("January".equals(request.getParameter("monthField")) {
于 2012-12-26T01:39:17.160 回答