JSP无法从输入中获取值

时间:2014-01-16 01:08:51

标签: java jsp scriptlet

编辑:现在工作!谢谢!所以锚不是提交。

为什么我不能使用doGet / doPost从输入中获取'opr'的值?我得到了一些空白。

形式:

<form method="post" role="form" name="frm">
    <div class="form-group">
        <input type="text" class="form-control" required="" placeholder="Title" id="newsboxTitle" name="title">
    </div>
    <textarea class="form-control" rows="3" id="newsbox" name="content"></textarea>

    <input type="hidden" name="page_action">
    <div>
        <a href="addNews" type="button" name="opr" class="btn btn-danger" value="1">Submit</a>
    </div>
</form>

的Servlet(newsUpdate.java):

    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
    String opr = req.getParameter("title");
    JOptionPane.showMessageDialog(null, opr);
    getServletContext().getRequestDispatcher("/news.jsp").forward(req, res);
}

   public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
    String opr = req.getParameter("title");
    JOptionPane.showMessageDialog(null, opr);
    getServletContext().getRequestDispatcher("/admin/news.jsp").forward(req, res);
}

如果我没有把doGet我得到错误405。

这是我的web.xml:

<servlet>
    <servlet-name>addNews</servlet-name>
    <servlet-class>processes.newsUpdates</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>addNews</servlet-name>
    <url-pattern>/admin/addNews</url-pattern>
</servlet-mapping>

2 个答案:

答案 0 :(得分:1)

  

单击锚点并提交表单是两回事。 - Sotirios Delimanolis

在此评论成为答案之前,我们开始......

这也解释了405错误。单击链接会执行“获取”请求。因此调用doGet,而不是doPost。此表单需要一个“提交”按钮或一个JavaScript回调,它将表单提交给Web服务器。

答案 1 :(得分:0)

为什么代码使用JOptionPane.showMessageDialog(null, opr);?像任何其他参数一样获取值。代码不应该在servlet中混合Java Swing,用户永远不会看到它。

req.getParameter("opr")

表格也应使用按钮提交:

<button type="submit" name="opr" class="btn btn-danger" value="1">Submit</button>