编辑:现在工作!谢谢!所以锚不是提交。
为什么我不能使用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>
答案 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>