求大神解答!SSH框架如何在一张带有外键的表中插入数据。
来源:互联网 发布:达内unity3d视频下载 编辑:程序博客网 时间:2024/06/07 09:59
java.lang.NullPointerException
at com.action.informng.GoodsInforAction.addGoodsInfor(GoodsInforAction.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
以下是GoodsCate .java
package com.bean.informng;
import java.util.HashSet;
import java.util.Set;
public class GoodsCate {
private int goods_num;
private String goods_cateName;
private Set<GoodsInfor> goodsInfor = new HashSet<GoodsInfor>();
public int getGoods_num() {
return goods_num;
}
public void setGoods_num(int goods_num) {
this.goods_num = goods_num;
}
public String getGoods_cateName() {
return goods_cateName;
}
public void setGoods_cateName(String goods_cateName) {
this.goods_cateName = goods_cateName;
}
public Set<GoodsInfor> getGoodsInfor() {
return goodsInfor;
}
public void setGoodsInfor(Set<GoodsInfor> goodsInfor) {
this.goodsInfor = goodsInfor;
}
}
商品信息GoodsInfor.java
package com.bean.informng;
public class GoodsInfor {
private int goods_code;
private String goods_name;
private int goods_category;
private String goods_mnemonic;
private String goods_model;
private String goods_unit;
private String goods_address;
private int goods_price;
private int goods_presale;
private String goods_remark;
private GoodsCate goodsCate;
public int getGoods_code() {
return goods_code;
}
public void setGoods_code(int goods_code) {
this.goods_code = goods_code;
}
public String getGoods_name() {
return goods_name;
}
public void setGoods_name(String goods_name) {
this.goods_name = goods_name;
}
public int getGoods_category() {
return goods_category;
}
public void setGoods_category(int goods_category) {
this.goods_category = goods_category;
}
public String getGoods_mnemonic() {
return goods_mnemonic;
}
public void setGoods_mnemonic(String goods_mnemonic) {
this.goods_mnemonic = goods_mnemonic;
}
public String getGoods_model() {
return goods_model;
}
public void setGoods_model(String goods_model) {
this.goods_model = goods_model;
}
public String getGoods_unit() {
return goods_unit;
}
public void setGoods_unit(String goods_unit) {
this.goods_unit = goods_unit;
}
public String getGoods_address() {
return goods_address;
}
public void setGoods_address(String goods_address) {
this.goods_address = goods_address;
}
public int getGoods_price() {
return goods_price;
}
public void setGoods_price(int goods_price) {
this.goods_price = goods_price;
}
public int getGoods_presale() {
return goods_presale;
}
public void setGoods_presale(int goods_presale) {
this.goods_presale = goods_presale;
}
public String getGoods_remark() {
return goods_remark;
}
public void setGoods_remark(String goods_remark) {
this.goods_remark = goods_remark;
}
public GoodsCate getGoodsCate() {
return goodsCate;
}
public void setGoodsCate(GoodsCate goodsCate) {
this.goodsCate = goodsCate;
}
}
映像文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bean.informng.GoodsInfor" table="goods_information">
<id name="goods_code" type="java.lang.Integer">
<column name="goods_code" />
</id>
<many-to-one name="goodsCate" class="com.bean.informng.GoodsCate" lazy="false" fetch="join">
<column name="goods_category" />
</many-to-one>
<property name="goods_name" type="java.lang.String">
<column name="goods_name" />
</property>
<property name="goods_mnemonic" type="java.lang.String">
<column name="goods_mnemonic" />
</property>
<property name="goods_model" type="java.lang.String">
<column name="goods_model" />
</property>
<property name="goods_unit" type="java.lang.String">
<column name="goods_unit" />
</property>
<property name="goods_address" type="java.lang.String">
<column name="goods_address" />
</property>
<property name="goods_price" type="java.lang.Integer">
<column name="goods_price" />
</property>
<property name="goods_presale" type="java.lang.Integer">
<column name="goods_presale" />
</property>
<property name="goods_remark" type="java.lang.String">
<column name="goods_remark" />
</property>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bean.informng.GoodsCate" table="goods_cate">
<id name="goods_num" type="java.lang.Integer">
<column name="goods_num" />
</id>
<property name="goods_cateName" type="java.lang.String">
<column name="goods_cateName" />
</property>
<set name="goodsInfor" lazy="false" fetch="join">
<key>
<column name="goods_category" />
</key>
<one-to-many class="com.bean.informng.GoodsInfor" />
</set>
</class>
</hibernate-mapping>
Action:
package com.action.informng;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.bean.informng.GoodsCate;
import com.bean.informng.GoodsInfor;
import com.opensymphony.xwork2.ActionSupport;
import com.service.informng.GoodsCateManageService;
import com.service.informng.GoodsInforManageService;
public class GoodsInforAction extends ActionSupport{
private int goods_code;
private int goods_category;
private String goods_name;
private String goods_mnemonic;
private String goods_model;
private String goods_unit;
private String goods_address;
private int goods_price;
private int goods_presale;
private String goods_remark;
private GoodsInfor goodsInfor;
private GoodsInforManageService goodsInforService;
private List<GoodsInfor> goodsInforList;
private String json;
private String delids;
private GoodsCate goodsCate;
private GoodsCateManageService cateService;
private int goods_num;
public String execute() throws Exception {
goodsInforList = goodsInforService.findAllGoodsInfor();
json="{Rows:[";
for (int i = 0; i < goodsInforList.size(); i++) {
GoodsInfor su = goodsInforList.get(i);
json+="{goods_code:\""+su.getGoods_code()+"\",goodsCate:\""+su.getGoodsCate().getGoods_cateName()+"\",goods_name:\""+su.getGoods_name()+"\"," +
"goods_mnemonic:\""+su.getGoods_mnemonic()+"\"," +
"goods_model:\""+su.getGoods_model()+"\"," +
"goods_unit:\""+su.getGoods_unit()+"\"," +
"goods_address:\""+su.getGoods_address()+"\"," +
"goods_price:\""+su.getGoods_price()+"\"," +
"goods_presale:\""+su.getGoods_presale()+"\"," +
"goods_remark:\""+su.getGoods_remark()+"\" },";
}
json+="]}";
System.out.println(json);
return SUCCESS;
}
public String addGoodsInfor() throws Exception {
GoodsInfor goodsInfor=new GoodsInfor();
goodsInfor.setGoods_code(goods_code);
GoodsCate cate=cateService.findoneGoodsCate(goods_num);
goodsInfor.setGoodsCate(cate);
goodsInfor.setGoods_name(goods_name);
goodsInfor.setGoods_mnemonic(goods_mnemonic);
goodsInfor.setGoods_model(goods_model);
goodsInfor.setGoods_unit(goods_unit);
goodsInfor.setGoods_address(goods_address);
goodsInfor.setGoods_price(goods_price);
goodsInfor.setGoods_presale(goods_presale);
goodsInfor.setGoods_remark(goods_remark);
goodsInforService.addGoodsInfor(goodsInfor);
return SUCCESS;
}
public void delGoodsInfor() throws Exception {
List<Integer> idlist=new ArrayList<Integer>();
String[] ids = delids.split(",");
for (int i = 0; i < ids.length; i++) {
idlist.add(Integer.parseInt(ids[i]));
}
goodsInforService.delGoodsInfor(idlist);
goodsInforList = goodsInforService.findAllGoodsInfor();
json="{Rows:[";
for (int i = 0; i < goodsInforList.size(); i++) {
GoodsInfor su = goodsInforList.get(i);
json+="{goods_code:\""+su.getGoods_code()+"\",goodsCate:\""+su.getGoodsCate().getGoods_cateName()+"\",goods_name:\""+su.getGoods_name()+"\"," +
"goods_mnemonic:\""+su.getGoods_mnemonic()+"\"," +
"goods_model:\""+su.getGoods_model()+"\"," +
"goods_unit:\""+su.getGoods_unit()+"\"," +
"goods_address:\""+su.getGoods_address()+"\"," +
"goods_price:\""+su.getGoods_price()+"\"," +
"goods_presale:\""+su.getGoods_presale()+"\"," +
"goods_remark:\""+su.getGoods_remark()+"\" },";
}
json+="]}";
System.out.println(json);
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println(json);
}
public String findOneGoodsInfor() throws Exception{
System.out.println(goods_code);
goodsInfor=goodsInforService.findoneGoodsInfor(goods_code);
return SUCCESS;
}
public String updateGoodsInfor() throws Exception{
goodsInforService.updateGoodsInfor(goodsInfor);
return SUCCESS;
}
public int getGoods_code() {
return goods_code;
}
public void setGoods_code(int goods_code) {
this.goods_code = goods_code;
}
public int getGoods_category() {
return goods_category;
}
public void setGoods_category(int goods_category) {
this.goods_category = goods_category;
}
public String getGoods_name() {
return goods_name;
}
public void setGoods_name(String goods_name) {
this.goods_name = goods_name;
}
public String getGoods_mnemonic() {
return goods_mnemonic;
}
public void setGoods_mnemonic(String goods_mnemonic) {
this.goods_mnemonic = goods_mnemonic;
}
public String getGoods_model() {
return goods_model;
}
public void setGoods_model(String goods_model) {
this.goods_model = goods_model;
}
public String getGoods_unit() {
return goods_unit;
}
public void setGoods_unit(String goods_unit) {
this.goods_unit = goods_unit;
}
public String getGoods_address() {
return goods_address;
}
public void setGoods_address(String goods_address) {
this.goods_address = goods_address;
}
public int getGoods_price() {
return goods_price;
}
public void setGoods_price(int goods_price) {
this.goods_price = goods_price;
}
public int getGoods_presale() {
return goods_presale;
}
public void setGoods_presale(int goods_presale) {
this.goods_presale = goods_presale;
}
public String getGoods_remark() {
return goods_remark;
}
public void setGoods_remark(String goods_remark) {
this.goods_remark = goods_remark;
}
public GoodsInfor getGoodsInfor() {
return goodsInfor;
}
public void setGoodsInfor(GoodsInfor goodsInfor) {
this.goodsInfor = goodsInfor;
}
public GoodsInforManageService getGoodsInforService() {
return goodsInforService;
}
public void setGoodsInforService(GoodsInforManageService goodsInforService) {
this.goodsInforService = goodsInforService;
}
public List<GoodsInfor> getGoodsInforList() {
return goodsInforList;
}
public void setGoodsInforList(List<GoodsInfor> goodsInforList) {
this.goodsInforList = goodsInforList;
}
public String getJson() {
return json;
}
public void setJson(String json) {
this.json = json;
}
public String getDelids() {
return delids;
}
public void setDelids(String delids) {
this.delids = delids;
}
public GoodsCate getGoodsCate() {
return goodsCate;
}
public void setGoodsCate(GoodsCate goodsCate) {
this.goodsCate = goodsCate;
}
public GoodsCateManageService getCateService() {
return cateService;
}
public void setCateService(GoodsCateManageService cateService) {
this.cateService = cateService;
}
public int getGoods_num() {
return goods_num;
}
public void setGoods_num(int goods_num) {
this.goods_num = goods_num;
}
}
JSP添加页:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath %>" />
<title>商品信息</title>
<link href="ui/ligerUI/skins/Aqua/css/ligerui-form.css" rel="stylesheet"
type="text/css" />
<script src="ui/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/core/base.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerForm.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerDateEditor.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerComboBox.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerCheckBox.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerButton.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerDialog.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerRadio.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerSpinner.js" type="text/javascript"></script>
<script src="ui/ligerUI/js/plugins/ligerTextBox.js" type="text/javascript"></script>
<script type="text/javascript">
$(function ()
{
$("form").ligerForm();
});
</script>
<style type="text/css">
body{ font-size:12px;}
.l-table-edit {}
.l-table-edit-td{ padding:4px;}
.l-button-submit,.l-button-reset{width:80px; float:left; margin-left:10px; padding-bottom:2px;}
.l-verify-tip{ left:230px; top:120px;}
</style>
</head>
<body style="padding:10px">
<form method="post" action="AddGoodsInforAction">
<div>
</div>
<table cellpadding="0" cellspacing="0" class="l-table-edit" >
<tr>
<td align="right" class="l-table-edit-td">商品代码:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_code" type="text" /></td>
<td align="left"></td>
<td align="right" class="l-table-edit-td">商品类别:</td>
<td align="left" class="l-table-edit-td">
<select name="goodsInfor.goods_category">
<s:iterator value="goodsCateList" id="good">
<option value="<s:property value="#good.goods_num"/>"><s:property value="#good.goods_cateName"/></option>
</s:iterator>
</select> </td>
</tr>
<tr>
<td align="right" class="l-table-edit-td">商品名称:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_name" type="text" /></td>
<td align="left"></td>
<td align="right" class="l-table-edit-td">助记码:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_mnemonic" type="text" /></td>
</tr>
<tr>
<td align="right" class="l-table-edit-td">商品型号:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_model" type="text" /></td>
<td align="left"></td>
<td align="right" class="l-table-edit-td">单位名称:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_unit" type="text" /></td>
</tr>
<tr>
<td align="right" class="l-table-edit-td">商品产地:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_address" type="text" /></td>
<td align="left"></td>
<td align="right" class="l-table-edit-td">成本价:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_price" type="text" /></td>
</tr>
<tr>
<td align="right" class="l-table-edit-td">预售价:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_presale" type="text" /></td>
<td align="left"></td>
<td align="right" class="l-table-edit-td">备注:</td>
<td align="left" class="l-table-edit-td"><input name="goodsInfor.goods_remark" type="text" /></td>
</tr>
</table>
<br />
<input type="submit" value="提交" id="Button1" class="l-button l-button-submit" />
<input type="reset" value="重置" class="l-button l-button-reset"/>
</form>
<div style="display:none">
</div>
</body>
</html>
如果外键删了,添加功能是能实现的,个人觉得问题出在Action方法里:
GoodsCate cate=cateService.findoneGoodsCate(goods_num);
goodsInfor.setGoodsCate(cate);
就是商品信息里的商品类别值没传进去,求大神帮忙,在此谢谢了
- 求大神解答!SSH框架如何在一张带有外键的表中插入数据。
- 如何向Oracle数据库中插入带有特殊符号“&”的数据
- oracle中如何向带有blob字段类型的表插入数据
- Oracle中 如何对一张表的数据同时修改跟插入
- SQLServer2008中查询语句的疑问,求网友大神解答
- SSH框架双向多对多关系中如何向中间表插入数据
- mysql数据库操作(将一张表的数据插入到另外一张表中)
- 跪求大神解答
- 存储过程如何向一张表中循环插入1000条数据和字段二进制转换
- SQL 如何把一张表的数据拆成几部分放在一张表里面
- SSH框架之Hibernate数据库外键如何插入值的问题
- 如何在SSH框架中配置不支持事物的方法
- SSH框架在用ajax插入数据的时候报错
- hibernate或SSH框架怎么在插入数据后拿到自动递增主键的GeneratedKey?
- PL\SQL如何将从一张表中选出的数据插入到另一张表中
- 如何让一张表的数据批量插入到另一张表中
- dos批处理命令中出现问题,求大神解答
- 安装fistgen过程中出现问题求大神解答
- 稀疏数组详解
- matlab图像分割算法源码
- Flash Builder 快捷键
- Ubuntu 下 配置 jdk1.7
- 快速排序详解--C语言实现
- 求大神解答!SSH框架如何在一张带有外键的表中插入数据。
- jquery ajax 同步/异步 json数据解析 兄弟节点查找
- js匀速滑动div
- 寒从脚下起,火自头上生
- Virtualbox 隐藏启动虚拟机
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- Linux 常用命令
- Tomcat——轻量级server安装配置
- webView 相关