如何从spring beans类中获取数据?

时间:2014-02-19 06:56:01

标签: spring

我正在开发一个Web应用程序,它创建了一个bean类,其中所有的setter和getter方法都存在,如:

private String LeaveType;
private String leavePeriod;

private String reason;
private String FirstApprover;

private String finalApprover;
private String selectHours;

public String getLeaveType() {
    return LeaveType;
}

public void setLeaveType(String leaveType) {
    LeaveType = leaveType;
}

public String getLeavePeriod() {
    return leavePeriod;
}

public void setLeavePeriod(String leavePeriod) {
    this.leavePeriod = leavePeriod;
}

public String getReason() {
    return reason;
}

public void setReason(String reason) {
    this.reason = reason;
}

public String getFirstApprover() {
    return FirstApprover;
}

public void setFirstApprover(String firstApprover) {
    FirstApprover = firstApprover;
}

public String getFinalApprover() {
    return finalApprover;
}

public void setFinalApprover(String finalApprover) {
    this.finalApprover = finalApprover;
}

public String getSelectHours() {
    return selectHours;
}

public void setSelectHours(String selectHours) {
    this.selectHours = selectHours;
}

在上面的类中,来自html页面的详细信息得到了保存,当点击ob提交我希望通过创建该类的对象而不是从数据库中获取它而在我的另一个控制器类中获取数据时,我已经尝试了但是得到了null值如此,有没有办法摆脱这个问题。 cotrooler类:

@RequestMapping(value = "/leaveapplyform", method = RequestMethod.GET)
       public String showForm(ModelMap model,HttpServletRequest request) 
       {
         log.info("Inside Controller returning to leaveapplyform page....");

         LeaveApplyForm leaveapplyform =  new LeaveApplyForm();
        model.put("leaveapplyform", leaveapplyform);    


    return GlobalConstants.LEAVE_APPLY; 
       }


@RequestMapping(value = "/leaveapplyform" ,method = RequestMethod.POST)
    public String processForm(@ModelAttribute("leaveapplyform") LeaveApplyForm leaveapplyform,HttpServletRequest request, HttpServletResponse response, ModelMap model)
    {
        leaveapplyform = (LeaveApplyForm) model.get("leaveapplyform");
System.out.println(leaveapplyform.getReason());//Here goes wrong

}}

1 个答案:

答案 0 :(得分:0)

可能的洗脱方法是使用Flash属性(如果您使用的是Spring MVC的版本> = 3.1)。因此,您将第一个showForm方法更改为以下内容:

    public String showForm(@ModelAttribute("leaveapplyform")LeaveApplyForm leaveapplyform, HttpServletRequest request, final RedirectAttributes redirectAttributes) {
            log.info("Inside Controller returning to leaveapplyform page....");

            LeaveApplyForm leaveapplyform = new LeaveApplyForm();
            redirectAttributes.addFlashAttribute("leaveapplyform", leaveapplyform);

            return GlobalConstants.LEAVE_APPLY;
    }

然后在您的processForm中直接访问参数leaveapplyform,它不应该为空