gpt4 book ai didi

java - 在spring mvc中使用请求映射提交onchange

转载 作者:行者123 更新时间:2023-12-01 13:31:32 24 4
gpt4 key购买 nike

根据用户从下拉列表中选择的值生成 Jasper 报告(有两个下拉列表)。

JSP:

<form:form name="f" action="${flowExecutionUrl}"  modelAttribute="simpleReportSelector">
<table class="search">
<tr><th colspan="3"><fmt:message key="report.someextract"/></th></tr>

<tr>
<td><b><fmt:message key="somereport.sortdate"/></b>
<select id="firstfield" name="localDate" onchange="this.form.reloadPage.value='true';submit()">
<c:forEach var="dl" items="${dateList}">
<c:if test="${dl.selected==false}">
<option value="${dl.itemValue}">${dl.itemLabel}</option>
</c:if>

<c:if test="${dl.selected==true}">
<option selected="selected" value="${dl.itemValue}">${dl.itemLabel}</option>
</c:if>
</c:forEach>
</select>
</td>

<td><input type="hidden" id="reloadPage" name="reloadPage" value=""/></td>

<td><b><fmt:message key="somereport.equipNumber"/></b>
<select id="uld" name="uldNumber">
<c:forEach var="u" items="${uldList}">
<option value="${u.itemValue}">${u.itemLabel}</option>
</c:forEach>
</select>
</td>
</tr>

<tr><td class="right" colspan="3"><button type="submit" name="_eventId_exportReport">Submit</button></td></tr>

<tr class="hide">
<td><input id="submithidden" type="submit" value="submithidden" name="_eventId_submitButton" /></td>
</tr>
</table>
</form:form>

当用户从标题中选择此特定菜单时,页面将填充datelistuldlistdatelist 将默认为今天日期,uldlist 将默认为“select”。当用户选择之前的日期或 future 的日期时,uldlist 应该填充不同的列表。

Controller :

@Controller
@RequestMapping("/uldReport.do")
public class ULDReport {
@Transactional(readOnly=true)
@RequestMapping(value="/uldReport.do",method = RequestMethod.GET)
public String setupForm(Model model, HttpServletRequest request, HttpServletResponse response) {

//code to populate datelist and uld list(populates using present day)

}

@Transactional(readOnly=true)
@RequestMapping(params={"reloadPage='true'"}, value="/uldReport.do", method = RequestMethod.GET)
public String setUpUld(Model model, HttpServletRequest request, HttpServletResponse response) {

//this should populate the uld list by using the date seelcted by user

}

@Transactional(readOnly=true)
@RequestMapping(params={"reloadPage='false'"}, method = RequestMethod.POST)
public ModelAndView processSubmit(@ModelAttribute SimpleReportSelector simpleReportSelector, Model model, HttpServletRequest request, HttpServletResponse response) throws IOException{
//some code
}
}

第一种方法效果很好,但是当我更改日期时,应用程序会定向到错误页面。我认为可能与@RequestMapping有关,如果我从 Controller 中的第二个和第三个方法中删除params,应用程序会使用processandsubmit提交。我做错了什么?

最佳答案

发生这种情况可能是由于 URL 的构造方式所致。该页面正在加载空白页面,这意味着它无法找到任何与您设置的条件相匹配的内容,因此它会默默地失败。

为了让它按照您的预期工作,您可能需要将 url 格式化为如下所示:

/uldReport.do?reloadPage=true

/uldReport.do/reloadPage/true

取决于您的设置。

但重点是它需要位于 URL 中,而不是表单中的已提交字段,现在看来确实如此。

关于java - 在spring mvc中使用请求映射提交onchange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21536833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com