I am new to spring and I am facing the following issue:


编辑说明:

我可以通过创建一个新的控制器和ModelAndView方法来进行POST调用,但是现在我面临着另一个问题,即数据没有从JSP传递到控制器。
    我的JSP代码是:

form:form method="POST" action="UserOperation"
        modelAttribute="DebitModel">
        <h3>Debit</h3>

                    <c:if test="${!empty listAccounts}">
                        <select name="item" id="account_dropdown"
                            onchange="changeAccountDetails(this.options[this.selectedIndex].value)">
                            <c:forEach items="${listAccounts}" var="account">
                                <option
                                    value="${account.accID},${account.acctype},${account.balance}">AccID:
                                    ${account.accID} Balance: ${account.balance}</option>
                            </c:forEach>
                        </select>
                        <br>
                        <br>
                        <label ><b>Account ID: </b></label>
                        <label id="accIdText" path="accID">${listAccounts[0].accID}</label>
                        <label><b>Account Type: </b></label>
                        <label id="accTypeText" path="acctype">${listAccounts[0].acctype}</label>
                        <label><b>Balance: </b></label>
                        <label id="accBalText" path="balance">${listAccounts[0].balance}</label>
                    </c:if>
                    <br> <br> Enter Amount<input type="text"
                        id="amount" width="80" path="amount"></input> <br> <br>
        <input type="submit" value="Debit"></input>
    </form:form>


有一个普通的名为DebitModel的bean类。
我试图搜索并在许多地方未传递数据并找到解决方案,形式为:输入提及,但如果使用此方法,则不会获得Binding FoundException'java.lang.IllegalStateException:Bean名称为'DebitModel的BindingResult或普通目标对象都没有'可作为请求属性
即使存在。

The Controller class Code:

@Controller
@RequestMapping(value = "/UserOperation")
public class DebitController {
    @Autowired
    private AccountService mAccountService;

    @RequestMapping(method = RequestMethod.POST)
    public ModelAndView registerCustomer(@ModelAttribute("DebitModel") DebitModel debitModel, BindingResult result,
            HttpServletRequest request) throws NoSuchAlgorithmException, FileNotFoundException {

        ModelAndView modelAndView = new ModelAndView();
        System.out.println("data------------------------" + debitModel.toString());
        return modelAndView;
    }

}

最佳答案

显示您的控制器类。

似乎您在路径定义中使用了错误的模式。尝试在jsp和控制器级别将“ / UserHomeDebit”更改为“ UserHomeDebit”。

提交表单时,这可以检查浏览器的URL。假设您的应用程序名称为sampleapplication.then网址为

http://localhost:8080/sampleapplication

然后,如果将/ UserHomeDebit用作控制器路径映射,则url将会更改如下。

http://localhost:8080/UserHomeDebit

所以它是错误的,正确的必须是

http://localhost:8080/sampleapplication/UserHomeDebit

因此,只需按照我之前所说的更改路径并检查

08-06 19:42