【问题标题】:Passing a value from ftl page to servlet controller将值从 ftl 页面传递到 servlet 控制器
【发布时间】:2016-01-28 03:27:59
【问题描述】:

我对 servlet 和 FreeMarker (.ftl) 模板完全陌生,因此这里涉及到一些猜测。问题是我必须从我的 servlet 中接收的网页发送一个值。

这是我的努力

FTL 代码:

<form action="someAcction.spring" method="post">
    <input type = "submit" value="Generate Values">
    <input type = "text" placeholder = "Some long value">
    <input type = submit name="someValue" value=${someValue}>
</form>

控制器代码:

@RequestMapping(value = "/someAction")
@ResponseBody
String generateSomeValues(@ModelAttribute("someValue") String someValueStr) {
    Long someValue;
    try{
            someValue = Long.parseLong(someValueStr.trim());
    } catch (NumberFormatException nfe) {
         return "Invalid some value " + someValueStr;

    //...... Some more code
}

请指点一下,这里有什么问题。

【问题讨论】:

  • “someValue”的输入类型不正确。我认为应该是文本而不是提交。
  • 问题似乎在最后一行表格行。但即使在我将提交更改为文本之后......事情也没有改善。

标签: java spring servlets webpage


【解决方案1】:

如果你使用 AJAX 来调用这个方法那么应该 @ResponseBody 使用。 @ModelAttribute 用于将对象与 jstl 标记绑定的情况。如果您使用 url appender 传递值,那么它会在控制器中使用 @RequestParam 或 @PathVariable 进行访问。

试试这个:

<form action="someAcction.spring" method="post">
<input type = "submit" value="Generate Values" name="value1"/>
<input type = "text" placeholder = "Some long value" name="value2"/>
<input type = "submit" name="someValue" value=${someValue}/>
</form>

@RequestMapping(value = "/someAction")
String generateSomeValues(HttpServletRequest request,HttpServletResponse response){
  Long someValue;
try{
        someValue = Long.parseLong(request.getParamter("value1"));
        System.out.println(someValue);
} catch (NumberFormatException nfe) {
     return "Invalid some value " + someValueStr;

//...... Some more code
}

【讨论】:

  • 它没有用。尽管感谢您解释 ResponseBody 和 ModelAttribute 的用法。框架如何知道“value1”将具有各自的价值。 FTL 在这里并没有把这些事情说清楚。不是吗?
  • 请求对象包含所有页面数据。我们使用 request.getParamter("value1");... 检索上面的代码时遇到的错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
相关资源
最近更新 更多