【发布时间】:2014-06-11 09:08:53
【问题描述】:
我反映了如何使用扩展类通过 JSP 页面在 ModelAndView 中使用 getter 调用方法或获取属性值。
例如:
我会将 ModelAndView 类扩展为 View 类,并在那里实现一些方法来获取一些数据。
import org.springframework.web.servlet.ModelAndView;
public class View extends ModelAndView {
private Map store = new HashMap<>() ;
public Object getElement(String index) {
return store.get(index);
}
public void setElement(String index,Object o) {
store.put(index,o);
}
}
现在控制器将处理即将到来的请求。
public class WelcomeController extends AbstractController {
private String viewName;
@Override
protected ModelAndView handleRequestInternal(
HttpServletRequest request,
HttpServletResponse response) throws Exception {
View v = new View("example.jsp");
v.setElement("test", "Hello im test!");
return v
// I would not use here method addObject();
// how put reference to jsp page of View (ModelAndView)
// code like this return StackOverflowError
// v.addObject("reference_to_view",v);
}
}
什么都没有,除了从 JSP 页面中的 View 获取我的字符串测试:
example.jsp
<body>
<h1>WELCOME</h1>
// how can i here call method getElement of object View.
${this.getElement("test")}
${getElement("test")}
</body>
我如何调用方法 getElement();从 WelcomeController 返回的对象 View
【问题讨论】:
-
我认为在 JSP 中你不能访问整个 ModelAndView 只是它的 ModelMap 的项目,所以你必须使用 addObject(..) 将你的商店添加到它
标签: java jsp spring-mvc