2012-03-14 81 views
1

这里是我的控制器:如何从控制器中检索值?

@RequestMapping("/com/index.do") 
public String index(ModelMap model) throws Exception { 
    MyClass obj=new MyClass(); 
    model.addAttribute("obj",obj); 
    return "/com/index"; 
} 

这是我的观点:

<%@page contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"%> 
<%@page import="org.springframework.ui.ModelMap" %> 

<% 
    ModelMap model=new ModelMap(); 
    Object obj=model.get("obj"); 
%> 

在这里obj为null。 在这种情况下,如何检索该视图中的obj?

注:我需要在JSP标记使用(<%%>),不喜欢这样的:

${obj} 

谢谢!

回答

2

您需要使用JSP中的表达式语言(如$ {obj})进行访问。例如,如果你想打印在JSP中输入文本

(假设你的MyClass的是有的getName和setName或者你可以改变你在该类任何的getter的setter)如果你使用的弹簧TLD的

那么你看看spring:form标签来设置路径,这样你的bean和html元素就可以绑定了。

检查了这一点http://forum.springsource.org/showthread.php?73583-Accessing-model-attributes-in-JSP

+0

所以没办法在JSP标签(<% %>)使用? – 2012-03-14 07:58:41

+0

在jsp代码中使用scriptlet的不好的做法。在这里看到相关的帖子http://stackoverflow.com/questions/6399666/in-a-jsp-scriptlet-how-do-you-access-a-java-util-date-value-passed-from-a-sprin它的总是很好地使用EL来访问这些属性。 – raddykrish 2012-03-14 14:55:56

+0

我需要从该对象访问方法,这就是为什么我使用scriptlet。 – 2012-03-15 02:48:39

1

必须导入JSP页面JSTL的lib

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>