Отображение формы весны с помощью объекта сеанса

97
8

У меня есть базовая форма, и я получил свои значения из sessionBean.person.xxxxx (так что все в порядке):

<form:form action="account" method="post" class="form-horizontal" modelAttribute="sessionBean.person">
<!-- some form input elements like -->
<label class="col-sm-3 control-label">E-mail</label><div class="col-md-4"><form:input cssClass="form-control" path="email" maxlength="64" /></div>
<!-- submit button -->
</form:form>

И контроллер:

@Controller
@SessionAttributes("sessionBean")
public class AccountController {
@Autowired
private SessionBean sessionBean;

/** Display account page and process updates: password, personnal information, company, delivery and billing addresses
* @return JSP name
*/
@RequestMapping("/account")
public String accountPage(/* request params */) {
//checks not displayed
Person p=sessionBean.getPerson();
s.createQuery("UPDATE Person SET tittle=:t, firstname=:fn, lastname=:ln, phone=:p, fax=:f, email=:e WHERE id=:id")
.setParameter(":t", p.getTitle())
.setParameter(":fn", p.getFirstname())
.setParameter(":ln", p.getLastname())
.setParameter(":p", p.getPhone())
.setParameter(":f", p.getFax())
.setParameter(":e", p.getEmail())
.setParameter(":id", p.getId())
.executeUpdate();
}
}

SessionBean:

@Component
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class SessionBean implements Serializable {
private static final long serialVersionUID = 9139554982970790165L;
private final String id = UUID.randomUUID().toString();
private Person person = null;
private String redirect=null;
private Order3d order3d=new Order3d();
//getter and setters
}

Класс My Person:

@Entity
@Table (name="person")
public class Person implements Serializable {
private static final long serialVersionUID = 3005461811554821039L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column (name="id")
private int id;
@Column (name="email")
private String email;
@Column (name="company")
private String company;
@Column (name="siret")
private long siret;
@Column (name="payment")
private String payment;
@Column (name="title")
private String title;
@Column (name="firstname")
private String firstname;
@Column (name="lastname")
private String lastname;
@Column (name="password", columnDefinition="char", length=64)
private String password;
@Column (name="phone")
private String phone;
@Column (name="fax")
private String fax;
}

Когда я получаю свой объект Person в моем контроллере, введенные значения не обновляются в sessionBean.peron :(

спросил(а) 2014-01-29T17:25:00+04:00 6 лет, 7 месяцев назад
1
Решение
99

Я просто исправил это, я забыл добавить параметр:

public String accountPage(@ModelAttribute("sessionBean") SessionBean sb);

ответил(а) 2014-01-31T21:14:00+04:00 6 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема