春豆和类

时间:2014-02-23 12:50:37

标签: java spring model-view-controller javabeans

我正在尝试发现bean的工作方式,而且我正在尝试遵循spring官方bean教程(http://docs.spring.io/spring/docs/1.2.x/reference/beans.html)。

我正在尝试编写一个只需加载bean.xml文件并从中获取bean的应用程序,将其设置为变量。

Car car = (Car) beans.getBean("car");

以下是我的bean.xml的样子:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="person" class="com.vlad.myapp.Person">
    <property name="name"><value>"Bob"</value></property>
    <property name="lastName"><value>"Bobson"</value></property>
    <property name="id"><value>1</value></property>
    </bean> 

</beans>

这是我的Person.java类:

    package com.vlad.myapp;

public class Person {

    private String name;
    private String last_name;
    private int id;

    public Person(String name,String last_name,int id)
    {
        this.name = name;
        this.last_name = last_name;
        this.id = id;
    }

    public String name()
    {
        return name;

    }

    public String last_name(){
        return last_name;
    }
    public int id()
    {
        return id;
    }

    public void setName(String name){
        this.name = name;
    }
    public void setLastName(String name){
        this.last_name = name;
    }
    public void setId(int id)
    {
        this.id = id;
    }



}

在我的控制器中,我正在尝试加载bean文件并获取其中一个bean,如Car示例中所示:

ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("bean.xml");
    Person person = (Person) beans.getBean("person");
    model.addAttribute("person",person);
    return "home";

在视图中,我试图简单地打印出Person的名称:

<p>The person's name is: ${person.name()}</p>

然而,我加载的所有内容都是:

  

该人的姓名是:

看起来好像视图无法获取变量?

这是我的目录结构:

enter image description here

2 个答案:

答案 0 :(得分:2)

  1. 停止阅读Spring 1.2!
  2. 使用POJO - getter和setter(将方法名称更改为getName()等。)
  3. 尝试使用<p>The person's name is: ${person.name}</p>代替$ {person.name()}

答案 1 :(得分:0)

您需要创建POJO。你的吸气者错了,应该是:

    public String getName()
    {
        return name;
    }
    public String getLastName(){ 
        return last_name;
    }
    public int getId()
    {
        return id;
    }