将值从ftl页面传递到servlet控制器

问题描述 投票:2回答:1

我是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
}

请指点我,这里有什么不对。

java spring servlets webpage
1个回答
0
投票

如果您使用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
}
© www.soinside.com 2019 - 2024. All rights reserved.