hibernate 一对多 多的一方无法用get set方法
产品编号: | ||
产品标题: |
|
|
产品价格: | ||
产品数量: | ||
产品类别: | ${sort.sort } | |
文字说明: | ||
-------------------------------------------------------------------------
-------------------------------------------------------------------------
package action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import service.ProductService;
import com.opensymphony.xwork2.ActionSupport;
import com.pojo.Product;
import com.pojo.Sort;
public class ProductUploadAction extends ActionSupport {
private HttpServletRequest request;
private Product pro;
private ProductService proService;
public ProductService getProService() {
return proService;
}
public void setProService(ProductService proService) {
this.proService = proService;
}
public Product getPro() {
return pro;
}
public void setPro(Product pro) {
this.pro = pro;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
request = ServletActionContext.getRequest();
** //System.out.print(pro.getSort().getSort());**
return "success";
}
}
加粗哪一行总是报错
java.lang.NullPointerException
action.ProductUploadAction.execute(ProductUploadAction.java:37)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
知道为什么了 ssh框架刚开始不熟悉 原来是 struts.xml 和 application配置文件没配好 ,bean的id 是action中的class 要一致
并没看出哪一行加粗了。,,
pro.setSort pro.getSort总是出现空指针异常 , 他们是一对多的关系
package com.pojo;
import java.util.HashSet;
import java.util.Set;
/**
- Sort entity. @author MyEclipse Persistence Tools */
public class Sort implements java.io.Serializable {
// Fields
private Integer id;
private String sort;
private Set products = new HashSet(0);
// Constructors
/** default constructor */
public Sort() {
}
/** minimal constructor */
public Sort(String sort) {
this.sort = sort;
}
/** full constructor */
public Sort(String sort, Set products) {
this.sort = sort;
this.products = products;
}
// Property accessors
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSort() {
return this.sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public Set getProducts() {
return this.products;
}
public void setProducts(Set products) {
this.products = products;
}
}
package com.pojo;
/**
- Product entity. @author MyEclipse Persistence Tools */
public class Product implements java.io.Serializable {
// Fields
private String productNum;
private Sort sort;
private String productTitle;
private Float productPrice;
private Integer productMax;
private String productDescribe;
// Constructors
/** default constructor */
public Product() {
}
/** full constructor */
public Product(String productNum, Sort sort, String productTitle,
Float productPrice, Integer productMax, String productDescribe) {
this.productNum = productNum;
this.sort = sort;
this.productTitle = productTitle;
this.productPrice = productPrice;
this.productMax = productMax;
this.productDescribe = productDescribe;
}
// Property accessors
public String getProductNum() {
return this.productNum;
}
public void setProductNum(String productNum) {
this.productNum = productNum;
}
public Sort getSort() {
return this.sort;
}
public void setSort(Sort sort) {
this.sort = sort;
}
public String getProductTitle() {
return this.productTitle;
}
public void setProductTitle(String productTitle) {
this.productTitle = productTitle;
}
public Float getProductPrice() {
return this.productPrice;
}
public void setProductPrice(Float productPrice) {
this.productPrice = productPrice;
}
public Integer getProductMax() {
return this.productMax;
}
public void setProductMax(Integer productMax) {
this.productMax = productMax;
}
public String getProductDescribe() {
return this.productDescribe;
}
public void setProductDescribe(String productDescribe) {
this.productDescribe = productDescribe;
}
}
private Set products = new HashSet(0);
改了 private List Product> products;