【问题标题】:Display simple class properties in jsp output with Spring Mvc使用 Spring Mvc 在 jsp 输出中显示简单的类属性
【发布时间】:2013-12-08 08:03:02
【问题描述】:

我是 Spring-MVC 的新手,我正在尝试显示分配给的类属性 模型。

我正在使用一个简单的字符串执行以下操作:

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>

我怎样才能实现它?

【问题讨论】:

  • 你遇到什么样的错误?

标签: java spring spring-mvc


【解决方案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>

【讨论】:

    【解决方案2】:

    Java 区分大小写。 nameName 不同。

    试试&lt;p&gt;User name is ${user.name}&lt;/p&gt;

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

    【讨论】:

    • 我读过这是必须声明的 getName 方法,否则它会崩溃。这是真的吗?
    • 如果nameprivate 字段,那么是的,但是你为什么不检查一下呢?删除getName() 看看会发生什么:)
    【解决方案3】:

    您尝试此部分的位置:

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

    以及你在哪里尝试这个:

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

    令人困惑..没关系

    //在你的控制器中welcome是一个你必须传递的请求参数

    @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>.
    

    【讨论】:

      猜你喜欢
      • 2013-03-23
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2017-10-25
      • 2014-01-19
      • 2013-02-13
      • 2012-05-17
      • 2017-11-20
      相关资源
      最近更新 更多