如何将 JSP 中的值传递<form>到 Java 方法中



我有一个这种格式的JSP文件(两个选择标签)-

<%@ page import="mypackage.*" %>
<all the main tags>...
<form> 
<select> options... </select> 
<select> options... </select> 
<input type="submit" value="submit" /> 
</form>
<textarea></textarea>

"mypackage"中有一个java方法,它应该在单击提交后从<select>标签中获取参数。该方法返回一个字符串,我想在<textarea>中输出该字符串。我该怎么做?

非常感谢大家。

将其作为HTTP POSTHTTP GET发送到 Servlet,并通过 doGet()doPost() 方法接收它。您可以通过 HttpServletRequest.getParameter() .

void doPost(HttpServletRequest request, HttpServletResponse response)

我看到您正在将mypackage.*类导入到JSP中。实际上,您可以在JSP中包含Java代码并直接调用该类。像这样:

<%
    MyClass c = new MyClass();
    String result = c.doSomething(request.getParameter("select"));
    out.println("<textarea>" + result + "</textarea>");
%>

应该足够(但不好:结果应该被转义)。

但是,这段代码不是很易于维护,可以做得更好(kaustav datta 的答案是一种标准方法)。

可以使用Spring框架的MVC部分以更优雅的方式完成它:http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html

它在开始时需要一些配置,需要一些时间来理解,但是当你得到它时,它非常好。

在您的情况下,以下形式的控制器就足够了:

@Controller
public class SelectController {
   private final class MyClass c = new MyClass();
   @RequestMapping(value="/select", method = RequestMethod.POST)
   public String doSelect(@RequestParam("selection") final String selection, final ModelMap model) {
       final String result = c.doSomething(selection);
       modelMap.addAttribute("result", result);
       return "yourJsp";
   }
} 

request.getParameterValues("select")

这里getParameterValues请求接口的一种方法,它在此方法的参数中返回一个字符串 传递控制器的名称

从文本框获取值时,请使用方法 request.getParameter("name");

最新更新