Mic*_*ael 2 java spring spring-mvc
我有一个控制器从search.jsp中的表单中获取ID.我希望它重定向到entitydemo.jsp,它应该能够访问EntityDemo并输出其属性.我怎么做?我是否需要使用重定向并以某种方式将EntityDemo作为会话属性?
@Controller
public class SearchEntityController {
@RequestMapping(value = "/search", method = RequestMethod.GET)
public EntityDemo getEntityDemoByID(@ModelAttribute("search") Search search, BindingResult result) {
EntityDemo entityDemo = null;
if (search.getId() != null) {
int id = Integer.parseInt(search.getId());
entityDemo = DBHelper.getEntityDemo(id);
}
return entityDemo;
}
}
Run Code Online (Sandbox Code Playgroud)
假设你有一个名为EntityDemo哪个类的字段,Getters并且Setters对于所有字段,我认为你应该这样做:
@Controller
public class SearchEntityController {
@RequestMapping(value = "/search", method = RequestMethod.GET)
public ModelAndView getEntityDemoByID(@ModelAttribute("search") Search search, BindingResult result) {
EntityDemo entityDemo = null;
Map<String, Object> model = new HashMap<String, Object>();
if (search.getId() != null) {
int id = Integer.parseInt(search.getId());
entityDemo = DBHelper.getEntityDemo(id);
model.put("entityDemo", entityDemo);
}
return new ModelAndView(new RedirectView(pageIWantToRedirectTo), model);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在你的JSP,你可以用JSTL做这样的事情:${entityDemo.name},这里name是一个场,我假设EntityDemo类与适当在一起Getter,这是public String getName(){return this.name;}.
据我所知,Controller方法不会返回整个对象,它们要么返回String表示视图名称的值,要么返回\foo\bar\myPage.jsp整个ModelAndView对象(有两种类型的对象,其中一种具有portlet全名,另一种具有全名)有servlet.在这种情况下,你必须使用有一个servlet在它的全名,只是为了清楚起见,当我说的全名,我的意思是包括与其所在的包.如果没记错的话以及你正在寻找的一个名字因为是在springframework...servlet.ModelAndView或类似的东西.
编辑:如果你想在提交时重定向,那么,你将需要制作2个控制器,一个将呈现表单,另一个将在提交表单后重定向.
关于JSP页面,您应该有一个xml文件名dispatcher-servlet.xml.名称可能会有所不同,具体取决于您的配置web.xml,但它们都具有结构<servletname>-servlet.xml.应该有一个名为的属性viewResolver(尽管这应该是这种情况,某些IDE不会为您填充太多.另一方面,IDE等Netbeans为您设置了大部分初始配置).这是另一个控制你的人views.它的作用是自动附加view您在控制器中指定的名称前后的项目.通常它会附加前缀pages/jsp/和后缀.jsp.因此,如果您有一个包含以下路径的页面pages/jsp/myPage.jsp,那么您需要传入控制器的所有内容myPage.页面的完整路径将由视图解析器构建.如果您传入整个URL,它仍会继续添加内容,因此即使您指定了正确的路径,仍然无法找到该页面.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |