我有一个这种格式的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 POST
或HTTP 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");