Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将值从ftl页面传递到servlet控制器_Java_Spring_Servlets_Webpage - Fatal编程技术网

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

Java 将值从ftl页面传递到servlet控制器,java,spring,servlets,webpage,Java,Spring,Servlets,Webpage,我对servlet和FreeMarker(.ftl)模板一无所知,因此这里涉及到一些猜测。问题是我必须从我的servlet中接收的网页发送一个值 以下是我在这方面的努力 FTL代码: <form action="someAcction.spring" method="post"> <input type = "submit" value="Generate Values"> <input type = "text" placeholder = "So

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

请告诉我,这里出了什么问题。

如果您使用AJAX调用此方法,那么应该使用@ResponseBody。在使用jstl标记绑定对象时使用@ModelAttribute。若您使用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
}

@请求映射(value=“/someAction”)
字符串generateSomeValues(HttpServletRequest请求、HttpServletResponse响应){
长值;
试一试{
someValue=Long.parseLong(request.getParameter(“value1”);
System.out.println(someValue);
}捕获(NumberFormatException nfe){
返回“无效的某些值”+someValueStr;
//……还有一些代码
}

输入“someValue”的类型是不正确的。我认为它应该是文本而不是提交。问题似乎是在最后一行中。但即使在我将提交更改为文本之后……情况也没有改善。它不起作用。尽管感谢您解释ResponseBy和ModelAttribute的用法。框架如何知道“value1”将具有各自的值。FTL不会使这些值变薄这里没有问题。是不是?请求对象包含所有页面数据。我们使用request.getParameter(“value1”);…通过执行上述代码时出现的错误来检索这些数据?