【发布时间】:2015-12-06 20:13:13
【问题描述】:
我正在使用 Spring 4 开发 Web 应用程序。
我有这个控制器
@RequestMapping(value = "/submitIdesFalse", method = RequestMethod.POST)
public void setSubmitIdesFalse(Map<String, Object> model, Locale loc) throws UnknownHostException, DataIntegrityViolationException, DataException, MysqlDataTruncation{
final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
final String userName = authentication.getName();
final Company company = companyService.getCompanyByUser(userName);
final Integer reportingYear = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR) - 1; // Previous year
final License license = licenseService.getLicense(company.getId(), reportingYear);
if(license.getIsSubmitted()){
log.debug("Files already submitted");
}else{
Date date = new Date();
license.setId(license.getId());
license.setIsSubmitted(true);
license.setDateSubmitted(new Timestamp(date.getTime()));
license.setUserSubmitted(userName);
licenseService.saveLicense(license);
log.debug("User Name is: " + userName);
log.debug("Company " + company.getName() + " set to Submitted FATCA Status");
final String emailList = this.fatcaWebProperties.getProperty(ApplicationPropertyName.EMAIL_LIST.getPropertyName());
final String[] emailListSplited = emailList.split(",");
final InetAddress ip = InetAddress.getLocalHost();
final TimeZone timeZone = TimeZone.getTimeZone("Canada/Eastern");
final String localDateTime = FatcaWebUtility.getDate();
final String opesDateTime = FatcaWebUtility.getDateWithTimeZone(timeZone);
final String companyName = company.getName();
final Long companyId = company.getId();
if(!company.getName().equals("OPES")){
for (int i = 0; i < emailListSplited.length; i++) {
emailSenderService.sendSubmittedOpesMail(ip, emailListSplited[i], companyId, companyName, localDateTime, opesDateTime, userName);
}
}
}
这是一个void方法,调用这个页面的形式是:
<form:form method="post" action="submitIdesFalse.html">
<input type="submit" id="sendGenerateSubmit" value="Generate and Submit" />
</form:form>
调用控制器后,它会返回一个 404 页面,提示找不到 submitIdesFalse.jsp,但我的控制器是 void
我试图让该方法返回一个 String 并返回我调用的页面,但是当我设置 void 时它返回这个奇怪的 404。
我发布了我所有的控制器以确保我没有遗漏任何东西,对于代码量感到抱歉。
顺便说一下,我用的是Tomcat 7。
有什么想法吗?
【问题讨论】:
-
您是否有任何显示事件顺序的日志消息?
-
日志文件中没有错误消息,我看到的最后一条是来自
if(license.getIsSubmitted()){ log.debug("Files already submitted"); }的“文件已提交” -
提交后你想做什么?什么都不显示?在这种情况下,您是否使用 ajax 发布表单?
标签: java spring-mvc servlets spring-4