当前位置: 首页 > 知识库问答 >
问题:

使用rest服务时表单无法将参数传递到requestparam中

马淳
2023-03-14

我试图将表单中的一些值发送给responsebody,以便对这些值执行一些操作。但这些值根本不会被转发到该处理程序。我找不到理由。这里会有什么问题?

我的处理程序

    @RequestMapping(value="/redemptionRedirect1/{userId}", method=RequestMethod.GET)
     @ResponseBody 
     public Transaction submitRedemption(@PathVariable("userId") long userId,@RequestParam(value="amount") String amount1,@RequestParam("bankaccount") int bankaccount,@RequestParam("demataccount") int demataccount)
    {
        boolean flag;
        Double amount=Double.parseDouble(amount1);
        Transaction transaction=new Transaction();
        transaction.setBankAccount(transactionService.getBank(bankaccount));
        transaction.setDematAccount(transactionService.getDemat(demataccount));
        transaction.setTransactionAmount(amount);
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        String name = auth.getName();
        User user=userService.getUser(name);
        transaction.setUser(user);
        flag = transactionService.addRedemptionTransactions(transaction);
        return transaction;
    }

我的JSP

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form  action="redemptionRedirect1/${user.userId}.htm" method="get">
<table>
 <tr><td>Amount: </td><td><input id="amount" type="text" maxlength="5" value='<c:out     value="${amount}"/>' placeholder='<c:out value="${amount}"/>'/></td></tr>
 <tr><td>
 Bank Accounts: </td><td><select id="bankaccount" >
 <c:forEach items="${baccounts}" var="account">
  <option value='<c:out value="${account.accountNumber}"/>'>
 <c:out value="${account.name}"/>
 </option>
 </c:forEach>
 </select>
 </td></tr>
   <tr><td>Demat Account: </td><td><input  id="demataccount" type="text"  placeholder='<c:out value="${daccount.dematName}"/>' value='<c:out  value="${daccount.dematAccountNumber}"/>'/></td></tr>
 <tr><td><input type="submit" value="Confirm"/></td></tr>
 </table>
 </form>
 </body>
 </html>

共有1个答案

陶宏浚
2023-03-14

表单通过每个输入的name属性序列化自身。
因此,首先您可以运行浏览器的developer tools功能,检查是否将值添加到请求中,或者(这只适用于GET请求)检查值是否在提交后添加到URL中。如果不是-为每个相应的输入添加name属性。

 类似资料:
  • 我在Symfony 3.3的服务中使用了一个参数,但我不断收到错误。 错误 [Symfony\Component\DependencyInjection\Exception\AutowiringFailedException]无法自动连线服务“AppBundle\service\ApiInterface”:方法“\uuu construct()”的参数“$api\u endpoint”必须具有类型

  • 问题内容: 如何将参数传递给表单? 根据以下答案进行编辑: 问题答案: 你应该定义表单的方法,如下所示: 没有意义。创建表单后,必须将属性添加到窗口小部件。尝试这样的事情:

  • 问题内容: 一个非常菜鸟般的问题: 我正在尝试使用工厂方法构建资源对象: 这种方法很容易,因为所有参数都是预定义的,organEntity和organCommpassword是在tag中定义的。 现在,对于另一个资源对象,我需要在调用工厂时传递参数。 我想象该资源对象的调用代码应如下所示: 我知道query()方法可以添加参数: 我想知道是否只是传递参数,可以在工厂获得参数吗?如何在工厂方法中指定

  • 我编写了两个简单的函数GET和POST,用于从表单中使用数据。不幸的是,当我提交此表单时,会再次显示带有空字段的表单,而不是获取响应。它更改URL地址http://localhost:8080/example到http://localhost:8080/example/?version=5.4

  • 我有一个接口方法,可以如下所示调用- 它可以接受类型的param,这样我就可以获取特定的结果。 现在,如果将paramIds保留为空,如下所示,Spring MVC将创建,大小为0,并且不会返回结果。 这是我的注释 我试图删除并使用,但无法将设置为。 现在,我将注释更改为,并在dao中添加代码将“none”处理为null--想知道是否有更好的方法来解决这个问题。 提前谢了。

  • 我有一个Gradle构建脚本,我试图将Eric Wendelin的CSS插件包含其中。 它很容易实现,因为我只想缩小(而不是合并和gzip),所以我得到了构建脚本的相关部分,如下所示: 这是完美的-当我运行gradle war任务时,它会调用mini fyCss任务,获取源css文件,并在buildDir中创建一个缩小版本 但是,我有一些需要缩小的css文件,但没有组合成一个文件(因此我没有使用组