使用休息服务时表单无法将参数传递给requestparam

Posted

技术标签:

【中文标题】使用休息服务时表单无法将参数传递给requestparam【英文标题】:form not able to pass parameter into requestparam when using rest services 【发布时间】:2014-01-14 00:52:33 【问题描述】:

我正在尝试将一些值从表单发送到响应体,以便对这些值执行一些操作。但是这些值根本没有转发给那个处理程序。我找不到原因。 这可能是什么问题?

我的处理程序

@RequestMapping(value="/redemptionRedirect1/userId", method=RequestMethod.GET) @ResponseBody 公共交易 submitRedemption(@PathVariable("userId") long userId,@RequestParam(value="amount") String amount1,@RequestParam("bankaccount") int bankaccount,@RequestParam("demataccount") int demataccount) 布尔标志; 双倍金额=Double.parseDouble(amount1); 交易交易=新交易(); transaction.setBankAccount(transactionService.getBank(bankaccount)); transaction.setDematAccount(transactionService.getDemat(demataccount)); transaction.setTransactionAmount(金额); 身份验证 auth = SecurityContextHolder.getContext().getAuthentication(); 字符串名称 = auth.getName(); 用户 user=userService.getUser(name); 交易.setUser(用户); flag = transactionService.addRedemptionTransactions(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】:

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

【讨论】:

我猜你是正确的,现在值正在传递到 url 但错误已更改为此。 “此请求标识的资源只能生成具有根据请求“接受”标头不可接受的特征的响应。” 太棒了!这意味着方法是正确的。您能否尝试使用 POST 而不是 GET? (在两者中,JSP 端和 Handler 方法属性)

以上是关于使用休息服务时表单无法将参数传递给requestparam的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地将参数传递给rails表单

如何使用 GET 方法将 GET 参数传递给 Laravel?

无法以 GET 类型的方法将字典作为参数传递给 WCF REST 服务

将参数传递给FormView Django中的表单

将参数传递给 symfony 5.4 表单测试不起作用

将参数传递给 django 表单