Java 如何调用ModelAndView方法或在JSP页面中获取对它的引用?
我反映了如何使用扩展类通过JSP页面在ModelAndView中使用getter调用方法或获取属性值 例如: 我将扩展类ModelAndView到类视图,并在其中实现一些方法来获取一些数据Java 如何调用ModelAndView方法或在JSP页面中获取对它的引用?,java,jsp,spring-mvc,Java,Jsp,Spring Mvc,我反映了如何使用扩展类通过JSP页面在ModelAndView中使用getter调用方法或获取属性值 例如: 我将扩展类ModelAndView到类视图,并在其中实现一些方法来获取一些数据 import org.springframework.web.servlet.ModelAndView; public class View extends ModelAndView { private Map store = new HashMap<>() ; public
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);
}
}
除了从JSP页面中的视图中获取我的字符串测试之外,没有其他内容:
example.jsp
<body>
<h1>WELCOME</h1>
// how can i here call method getElement of object View.
${this.getElement("test")}
${getElement("test")}
</body>
如何调用方法getElement;对于从WelcomeController返回的对象视图,从JSP中调用方法并不容易。这就是来自Spring的ModelAndView的原因:您提供了对视图的引用,并使用易于从视图访问的属性填充模型
public class WelcomeController extends AbstractController {
private String viewName;
@Override
protected ModelAndView handleRequestInternal(
HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("example.jsp");
mav.addObject("test", "Hello im test");
return mav;
}
}
然后,在您的视图中,您可以简单地从sub-jacent模型访问任何对象:
<body>
<h1>WELCOME</h1>
${test}
</body>
也许我错了,但你不能定义你的控制器:
@ManagedBean(name = WelcomeController.CONTROLLER_NAME)
public class WelcomeController extends AbstractController {
public static final String CONTROLLER_NAME = "welcomeController";
..
public String calculateSomeValue() {
return "Hello";
}
}
并在jsf页面中使用它,以便:
<body>
<h1>WELCOME</h1>
${welcomeController.calculateSomeValue()}
</body>
我认为在JSP中,您无法访问整个模型并仅查看其模型映射的项,因此必须使用addObject将存储添加到其中。。
@ManagedBean(name = WelcomeController.CONTROLLER_NAME)
public class WelcomeController extends AbstractController {
public static final String CONTROLLER_NAME = "welcomeController";
..
public String calculateSomeValue() {
return "Hello";
}
}
<body>
<h1>WELCOME</h1>
${welcomeController.calculateSomeValue()}
</body>