我有一个这种格式的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>
中输出的字符串。
我该怎么做?
非常感谢你们。
答案 0 :(得分:4)
将其作为HTTP POST
或HTTP GET
发送到servlet,然后通过doGet()
或doPost()
方法接收。您可以通过HttpServletRequest.getParameter()
访问它。
void doPost(HttpServletRequest request, HttpServletResponse response)
答案 1 :(得分:1)
我看到您正在将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";
}
}
答案 2 :(得分:1)
request.getParameterValues("select")
此处getParameterValues
是请求接口的一种方法,它返回控制器的此方法传递名称参数中的字符串
从文本框中获取值时,请使用方法request.getParameter("name");