java - Spring bean 在控制器类中返回 NULL
问题描述
JSP 1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Personal Info Page</title>
</head>
<body>
<center>
<h1>Personal Info Page</h1>
</center>
<center>
<form:form method="post" modelAttribute="pcbInfo"
action="/MyFirstWeb3/entrycontactinfo.do">
<table>
<tr>
<td>First Name:</td>
<td><form:input path="fName" /></td>
</tr>
<tr>
<td>Last Name:</td>
<td><form:input path="lName" /></td>
</tr>
<tr>
<td>Middle Name:</td>
<td><form:input path="mName" /></td>
</tr>
<tr>
<td>Gender:</td>
<td><form:radiobutton path="gender" value="M" />Male
<form:radiobutton path="gender" value="F" />Female</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Next" /></td>
</tr>
</table>
</form:form>
</center>
</body>
</html>
JSP2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Contact Info Page</title>
</head>
<body>
<center>
<h1>Contact Info Page</h1>
</center>
<center>
<form:form method="post" modelAttribute="pcbInfo"
action="/MyFirstWeb3/entrybankinfo.do">
<table>
<tr>
<td>Address:</td>
<td><form:input path="address" /></td>
</tr>
<tr>
<td>City:</td>
<td><form:input path="city" /></td>
</tr>
<tr>
<td>State:</td>
<td><form:input path="state" /></td>
</tr>
<tr>
<td>Country:</td>
<td><form:input path="country" /></td>
</tr>
<tr>
<td>Phone:</td>
<td><form:input path="phone" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Next" /></td>
</tr>
</table>
</form:form>
</center>
</body>
</html>
JSP3
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Bank Info Page</title>
</head>
<body>
<center>
<h1>Bank Info Page</h1>
</center>
<center>
<form:form method="post" modelAttribute="pcbInfo"
action="/MyFirstWeb3/processaddpersoninfo.do">
<table>
<tr>
<td>Bank Name:</td>
<td><form:input path="bankName" /></td>
</tr>
<tr>
<td>Acc No:</td>
<td><form:input path="accNo" /></td>
</tr>
<tr>
<td>SSN:</td>
<td><form:input path="SSN" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Save" /></td>
</tr>
</table>
</form:form>
</center>
</body>
@控制器
package com.apex.mfw.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;
import com.apex.mfw.bo.BankInfoBO;
import com.apex.mfw.vo.PCBInfo;
@Controller
@SessionAttributes({"pcbInfo"})
public class AddDataController {
BankInfoBO bankInfoBO;
@RequestMapping(value = "/entrypersonalinfo.do")
public ModelAndView entryPersonalInfo() {
System.out.println("Serving the Personalinfo form");
return new ModelAndView("personalinfo","pcbInfo", new PCBInfo());
}
@RequestMapping(value = "/entrycontactinfo.do")
public ModelAndView entryContactInfo(@ModelAttribute PCBInfo pcbInfo, HttpServletRequest req) {
System.out.println("Serving the contactinfo form");
return new ModelAndView("contactinfo","pcbInfo",pcbInfo);
}
@RequestMapping(value = "/entrybankinfo.do")
public ModelAndView entryBankInfo(@ModelAttribute PCBInfo pcbInfo) {
System.out.println("Serving the bankinfo form");
System.out.println("FNAME: " + pcbInfo.getfName());
System.out.println("MNAME: " + pcbInfo.getmName());
System.out.println("LNAME: " + pcbInfo.getlName());
System.out.println("GENDER: " + pcbInfo.getGender());
return new ModelAndView("bankinfo","pcbInfo",pcbInfo);
}
@RequestMapping(value = "/processaddpersoninfo.do")
public ModelAndView addBankInfo(@ModelAttribute PCBInfo pcbInfo, Model model) {
System.out.println("AddInfoController:addBankInfo():Start");
System.out.println("FNAME: " + pcbInfo.getfName());
System.out.println("MNAME: " + pcbInfo.getmName());
System.out.println("LNAME: " + pcbInfo.getlName());
System.out.println("GENDER: " + pcbInfo.getGender());
System.out.println("\n\nAddress: " + pcbInfo.getAddress());
System.out.println("City: " + pcbInfo.getCity());
System.out.println("State: " + pcbInfo.getState());
System.out.println("Country: " + pcbInfo.getCountry());
System.out.println("Phone: " + pcbInfo.getPhone());
bankInfoBO.addBankInfo(pcbInfo);
System.out.println("AddInfoController:addBankInfo():End");
return new ModelAndView("/MyFirstWeb3/entrypersonalinfo.do");
}
public AddDataController() {
}
}
VOBean
package com.apex.mfw.vo;
public class PCBInfo {
String fName;
String lName;
String mName;
String gender;
String address;
String country;
String city;
String state;
String phone;
String bankName;
String accNo;
String SSN;
public String getfName() {
return fName;
}
public void setfName(String fName) {
this.fName = fName;
}
public String getlName() {
return lName;
}
public void setlName(String lName) {
this.lName = lName;
}
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getAccNo() {
return accNo;
}
public void setAccNo(String accNo) {
this.accNo = accNo;
}
public String getSSN() {
return SSN;
}
public void setSSN(String sSN) {
SSN = sSN;
}
}
这里我尝试从JSP 1 到2 到3 进行遍历,从上面的ValueObject bean 中的3 个页面中收集数据
但是 sys.out 行都打印 NULL 值.. 在互联网上尝试了几种解决方案后,我感觉非常棒。请帮我找出我做错了什么。
解决方案
推荐阅读
- algorithm - 识别特定国家/地区的 Namaz 时间
- excel - 如何通过表格运行列范围并使用 VBA 将其粘贴到另一列中?
- python - Python参数的奇怪不匹配
- python-3.x - 在脚本中的环境之间来回切换(例如,Jupyter Notebooks)
- javascript - 使用 .JSON 文件的 JavaScript 变量
- python - regex to remove every hyphen except between two words
- python - 在 colab 崩溃模型中不使用recurrent_dropout?
- python - 需要帮助创建将在 Excel 中逐行遍历的循环
- c++ - 为什么我会收到错误“未在此范围内声明”
- jsf - 迁移 MyFaces 1.2.6 到 2.0.0 WebSphere