Java SPRING在处理JSP页面时发生异常
Java SPRING在处理JSP页面时发生异常,java,spring,maven,tags,Java,Spring,Maven,Tags,我对Spring的标签有问题。 当我运行jsp页面时,它会给出以下错误跟踪: HTTP Status 500 - An exception occurred processing JSP page /newExamTypology.jsp at line 19 type Exception report message An exception occurred processing JSP page /newExamTypology.jsp at line 19 description Th
我对Spring的标签有问题。
当我运行jsp页面时,它会给出以下错误跟踪:
HTTP Status 500 - An exception occurred processing JSP page /newExamTypology.jsp at line 19
type Exception report
message An exception occurred processing JSP page /newExamTypology.jsp at line 19
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /newExamTypology.jsp at line 19
16: <form:form modelAttribute="examTypology" >
17: <div>
18: <br />
19: <form:input path="name"></form:input>
20: <br /><br />
21: <form:label path="code">Codice:</form:label> <br />
22: <form:input path="code"/>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
root cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'examTypology' available as request attribute
org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)
org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142)
org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
org.apache.jsp.newExamTypology_jsp._jspx_meth_form_005finput_005f0(newExamTypology_jsp.java:193)
org.apache.jsp.newExamTypology_jsp._jspx_meth_form_005fform_005f0(newExamTypology_jsp.java:129)
org.apache.jsp.newExamTypology_jsp._jspService(newExamTypology_jsp.java:86)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.
谢谢你 您似乎没有将模型本身传递到页面。基本上,您需要执行以下操作:
@RequestMapping(value = "/newExamTypology", method = RequestMethod.GET)
public String showNewExamTypology(ModelMap modelMap) {
// your custom logic
modelMap.put("examTypology", new ExamTypology());
return "newExamTypology";
}
你能更详细一点吗^^“当您执行
GET
请求页面/newexamtypoology
时,您的页面正在等待对象examtypoology
出现在表单
中以填充它。在您的代码中,我没有发现此问题。这可能是一个问题。”。
package it.uniroma3.controller;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Validator;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import it.uniroma3.model.ExamTypology;
import it.uniroma3.service.ExamTypologyService;
@Controller
@RequestMapping("/examTypology")
public class ExamTypologyController extends WebMvcConfigurerAdapter{
@Autowired
private ExamTypologyService examTypologyService;
@Autowired
@Qualifier("examTypologyValidator")
private Validator validator;
@InitBinder
private void initBinder(WebDataBinder binder) {
binder.setValidator(validator);
}
@RequestMapping(value = "/examTypology", method = RequestMethod.POST)
public ModelAndView examTypology() {
return new ModelAndView("examTypology", "command", new ExamTypology());
}
// @ModelAttribute("examTypology")
// public ExamTypology createExamTypologyModel() {
// return new ExamTypology();
// }
@RequestMapping(value="/listexamtypology", method = RequestMethod.GET)
public String listExamTypology(Model model) {
model.addAttribute("examTypologiesList", examTypologyService.listExamTypology());
return "examTypology";
}
@RequestMapping(value = "/addexamtypology", method = RequestMethod.POST)
public String addExamTypology(Model model) {
return "newexamtypology";
}
@RequestMapping(value="/updateexamtypology", method = RequestMethod.GET)
public String updateExamTypology(@ModelAttribute("examTypology") @Valid ExamTypology examTypology, BindingResult bindingResult, Model model) {
if(bindingResult.hasErrors())
return "addexamtypology";
this.examTypologyService.insertExamTypology(examTypology);
model.addAttribute("examTypologiesList", examTypologyService.listExamTypology());
return "examTypology";
}
@RequestMapping(value="/delete/{etId}", method = RequestMethod.GET)
public String deleteExamTypology(@PathVariable("etid") Long etId, Model model) {
this.examTypologyService.deleteExamTypology(etId);
model.addAttribute("examTypologiesList", examTypologyService.listExamTypology());
return "examTypology";
}
}
@RequestMapping(value = "/newExamTypology", method = RequestMethod.GET)
public String showNewExamTypology(ModelMap modelMap) {
// your custom logic
modelMap.put("examTypology", new ExamTypology());
return "newExamTypology";
}