0

我有一个这种格式的 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>. 我该怎么做?

非常感谢你们。

4

3 回答 3

4

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

void doPost(HttpServletRequest request, HttpServletResponse response)
于 2012-11-29T21:40:27.990 回答
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";
   }
} 
于 2012-11-29T22:20:45.553 回答
1

request.getParameterValues("select")

getParameterValues是请求接口的一个方法,它在此方法的参数中返回一个字符串,并通过您的控制器的名称

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

于 2013-03-18T17:24:57.420 回答