【发布时间】:2017-05-29 08:29:34
【问题描述】:
我是 spring 和 stackoverflow 的新手。我的情况如下: 我在映射到控制器类的索引页面上单击了一个按钮,我到达了那里,但是由于控制器没有进一步重定向到所需的视图或 jsp 文件,因此进一步的映射不起作用。
这是我的控制器类
import java.util.List;
import model.Emp;
import model.EmpDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
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;
@Controller
public class EmpController {
@Autowired
EmpDao dao;//will inject dao from xml file
/*It displays a form to input data, here "command" is a reserved request
attribute
*which is used to display object data into form
*/
@RequestMapping("/empform")
public ModelAndView showform() {
return new ModelAndView("redirect:/empform", "command", new Emp());
}
/*It saves object into database. The @ModelAttribute puts request data
* into model object. You need to mention RequestMethod.POST method
* because default request is GET*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
public ModelAndView save(@ModelAttribute("emp") Emp emp) {
dao.save(emp);
return new ModelAndView("redirect:/viewemp");//will redirect to viewemp request mapping
}
/* It provides list of employees in model object */
@RequestMapping("/viewemp")
public ModelAndView viewemp() {
List<Emp> list = dao.getEmployees();
return new ModelAndView("redirect:/viewemp", "list", list);
}
/* It displays object data into form for the given id.
* The @PathVariable puts URL data into variable.*/
@RequestMapping(value = "/editemp/{id}")
public ModelAndView edit(@PathVariable int id) {
Emp emp = dao.getEmpById(id);
return new ModelAndView("empeditform", "command", emp);
}
/* It updates model object. */
@RequestMapping(value = "/editsave", method = RequestMethod.POST)
public ModelAndView editsave(@ModelAttribute("emp") Emp emp) {
dao.update(emp);
return new ModelAndView("redirect:/viewemp");
}
/* It deletes record for the given id in URL and redirects to /viewemp */
@RequestMapping(value = "/deleteemp/{id}", method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int id) {
dao.delete(id);
return new ModelAndView("redirect:/viewemp");
}}
我已经检查了许多与此问题相关的问题,但不幸的是没有任何效果。请帮忙。
dispatcher-servlet.xml
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMap
ping"/>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.htm">indexController</prop>
</props>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
<bean name="indexController" class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="index" />
applicationContext.xml
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/demoDB"></property>
<property name="username" value="root"></property>
<property name="password" value="password"></property>
</bean>
<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="ds"></property>
</bean>
<bean id="dao" class="model.EmpDao">
<property name="template" ref="jt"></property>
</bean>
项目树:
【问题讨论】:
-
在投减票之前说点什么。
-
可能问题出在您的视图解析器配置中。
-
提供一个较小的、可重现的问题样本可能会有所帮助。
-
如果您在重定向中使用 html 页面,您需要在 spring.xml 文件中将其配置为
-
没有@Sangram 只有jsp页面。我附上了项目树的快照,看看。
标签: java spring jsp spring-mvc model-view-controller