SSH2中加JSON

struts2中的action:

public class InvoiceAction extends ActionSupport implements ModelDriven<Sales>{
	
	private List<Sales> salesList=new ArrayList<Sales>();
	private SalesIService salesService;
	private Sales sales=new Sales();
	
	public String initData(){
		HttpServletRequest request =ServletActionContext.getRequest();
		HttpSession session = request.getSession();
		Short coid=(Short) session.getAttribute("coid");
		salesList=salesService.find("from Sales s where s.company.coId="+coid);
		System.out.println(salesList);
		return "succ";
	}

	public String findByPK(){
		List<Sales> list=salesService.find("from Sales s left join fetch s.company c

  where s.salesNo = "+sales.getSalesNo());
		if(list.size()>0){
			sales=list.get(0);
			System.out.println("( ⊙ o ⊙ )");
			System.out.println(sales.getSeName()+"╮(╯▽╰)╭");
			
		}
		return SUCCESS;
	}

	//get,set方法
	public List<Sales> getSalesList() {
		return salesList;
	}

	public void setSalesList(List<Sales> salesList) {
		this.salesList = salesList;
	}

	public void setSalesService(SalesIService salesService) {
		this.salesService = salesService;
	}

	public Sales getModel() {
		return this.sales;
	}
	
}

 其中的Sales类:

public class Sales implements Serializable{

	private Integer salesNo;	//PK
	private String sen1;		//简码
	private Company company;	//添加该数据的用户所在的公司(FK)
	private String seName;		//销货单位名称
	private String taxId;		//纳税人识别号
	private String bank;		//开户行
	private String account;		//账号
	private String address;		//地址
	private String phone;		//电话
}

 因为

List<Sales> list=salesService.find("from Sales s left join fetch s.company c  where s.salesNo = "+sales.getSalesNo());

 

若在find的时候不把company带出来的话,再使用json格式转化数据时就会出问题为报错hibernate no session。

我猜想,JSON肯定是硬要转换sales中的company,但sales中的company中没有值,所以再去取。

 

看了JSON还真是难伺候,每次碰到JSON的问题都会找半天,今天终于发现可以用HTTP watch来排查JSON错误了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值