在Spring MVC中显示jsp输出中的简单类属性

问题描述:

我是Spring-MVC中的新成员,我试图显示正在分配给 模型的类属性。在Spring MVC中显示jsp输出中的简单类属性

我做一个简单的字符串如下:

model.addAttribute("user", "username"); 

而且它使用被显示为预期:

<P> The user is ${username}. </P> 

但现在我有下面的类:

public class User { 
      private String name; 
      public User(){ 
      this.setName("Unknown"); 
      } 
      public String getName() { 
      return name; 
      } 
      public void setName(String name) { 
      this.name = name; 
      } 
     } 

而我试图在jsp输出中显示“名称”属性没有成功:

 User myuser = new User(); 
    myuser.setName("CARLOS"); 
    model.addAttribute("user",myuser); 

在JSP鉴于我使用:

 <p>User name is ${user.Name}</p> 

与也试过:

 <c:out value="${$user.Name}"></c:out> 

我怎样才能实现呢?

+0

你得到了什么样的错误? –

Java区分大小写。 nameName不一样。

尝试<p>User name is ${user.name}</p>

<c:out value="${user.name}"></c:out>也可以工作(圆括号内没有$)。
请注意,使用<c:out>转义所有HTML字符请参阅this answer

+0

我读过它是一个必须声明的getName方法或它崩溃。真的吗? –

+0

如果'name'是'private'字段,那么是的,但为什么你不检查它?删除'getName()'看看会发生什么:) –

+1

我已经试过了;)。它肯定崩溃。谢谢。 –

您已将该属性定义为名称。在这种情况下名字不会被找到。

public class User { 
     private String name; 
     public User(){ 
     this.setName("Unknown"); 
     } 
     public String getName() { 
     return name; 
     } 
     public void setName(String name) { 
     this.name = name; 
     } 
    } 


<p>User name is ${user.name}</p> 

你在哪里尝试此节:

model.addAttribute("user", "username"); 

,并在那里你正在尝试这一个:

User myuser = new User(); 
myuser.setName("CARLOS"); 
model.addAttribute("user",myuser); 

混乱..其确定

//在控制器的欢迎是请求参数您必须通过

@RequestMapping(value="/welcome", method = RequestMethod.GET) 
public String welcome(ModelMap model) { 
User myuser = new User(); 
myuser.setName("CARLOS"); 
model.addAttribute("user",myuser); 
return "/*your jsp file*/"; 
} 

在你的jsp文件中

<p>User name is ${user}</p>.