您的位置:首页 > 其它

SSH--1

2017-01-05 07:55 471 查看


package com.etc.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.etc.biz.FamilyBiz;
import com.etc.entity.Family;
import com.etc.entity.Pet;
import com.google.gson.Gson;
import com.opensymphony.xwork2.ActionSupport;

public class FamilyAction extends ActionSupport
{
private List<Family> list ;
private List<Pet> pets ;
private FamilyBiz biz;
private Family family;//a 用于接收来自表单的输入
private Pet pet;//a 用于接收来自ajax的宠物输入
public List<Pet> getPets() {
return pets;
}

public void setPets(List<Pet> pets) {
this.pets = pets;
}

public Pet getPet() {
return pet;
}

public void setPet(Pet pet) {
this.pet = pet;
}

private boolean isshow;
private String msg;

public boolean isIsshow() {
return isshow;
}

public void setIsshow(boolean isshow) {
this.isshow = isshow;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public Family getFamily() {
return family;
}

public void setFamily(Family family) {
this.family = family;
}

public List<Family> getList() {
return list;
}

public void setList(List<Family> list) {
this.list = list;
}

public FamilyBiz getBiz() {
return biz;
}

public void setBiz(FamilyBiz biz) {
this.biz = biz;
}

public String findall()
{
list = biz.findAll();
return "findall_success";
}

public String add()
{
//1 让表单输入的宠物list,作为family的set对象
Set<Pet> ps = new HashSet<Pet>(this.pets);
for(Pet p:ps)
p.setFamily(family);
family.setPets(ps);

try
{
biz.add(family);
} catch (Exception e)
{
isshow = true;
msg = "添加过程发现未知异常!"+e.getMessage();
return "my_error";
}
isshow = true;
msg = "添加成功!";
return "add_success";
}

public String toupdate()
{
int fid = family.getFid();
family = biz.findById(fid);
return "toupdate_success";
}

public String update()
{
//1 让表单输入的宠物list,作为family的set对象
Set<Pet> ps = new HashSet<Pet>(this.pets);
for(Pet p:ps)
p.setFamily(family);
family.setPets(ps);

try
{
biz.update(family);
} catch (Exception e)
{
isshow = true;
msg = "修改过程发现未知异常!"+e.getMessage();
return "my_error";
}
isshow = true;
msg = "修改成功!";
return "update_success";
}

public String addpet() throws IOException
{
//让pet和family对象发生关联关系
pet.setFamily(family);

try
{
int pid = biz.add(pet);
pet.setPid(pid);//添加成功,使用返回的主键让pet对象完整。

} catch (Exception e)
{

}

Gson gson = new Gson();

String json = gson.toJson(pet);//将pet对象转成json字符串返回
//先设置响应编码
HttpServletResponse res = ServletActionContext.getResponse();
res.setContentType("text/html;charset=utf-8");
PrintWriter pw = res.getWriter();
//写回客户端
pw.print(json);
pw.flush();
pw.close();
return "addpet_success";
}
public String delpet() throws IOException
{
int pid = pet.getPid();
//family = new Family();
//pet.setFamily(family);
String restxt = "";
try
{
biz.delpet(pid);
restxt = "1";
} catch (Exception e)
{
restxt = "0";
}
//先设置响应编码
HttpServletResponse res = ServletActionContext.getResponse();
res.setContentType("text/html;charset=utf-8");
PrintWriter pw = res.getWriter();
//写回客户端
pw.print(restxt);
pw.flush();
pw.close();
return "delpet_success";
}
public String delete()
{
int fid = family.getFid();
try {
biz.del(fid);
} catch (Exception e)
{
isshow = true;
msg = "删除过程发现未知异常!"+e.getMessage();
return "my_error";
}
isshow = true;
msg = "删除成功!";
return "delete_success";

}
}


  

package com.etc.biz;

import java.util.List;

import com.etc.entity.Family;
import com.etc.entity.Pet;

public interface FamilyBiz {
List<Family> findAll();
void add(Family family);
Family findById(int fid);
void update(Family family);

//ajax专用,返回添加后的主键
int add(Pet pet);
void del(int fid);
void delpet(int pid);
}


  

package com.etc.biz.imp;

import java.util.List;

import com.etc.biz.FamilyBiz;
import com.etc.dao.FamilyDao;
import com.etc.entity.Family;
import com.etc.entity.Pet;

public class FamilyBizImp implements FamilyBiz
{
private FamilyDao dao;

public FamilyDao getDao() {
return dao;
}

public void setDao(FamilyDao dao) {
this.dao = dao;
}

public List<Family> findAll() {
return dao.findAll();
}

public void add(Family family)
{
dao.add(family);
}

public Family findById(int fid) {
return dao.findById(fid);
}

public void update(Family family) {
dao.update(family);

}

public int add(Pet pet) {
return dao.add(pet);
}

public void delpet(int pid)
{
dao.delpet(pid);
}

public void del(int fid) {
dao.del(fid);
}
}


  

package com.etc.dao;

import java.util.List;

import com.etc.entity.Family;
import com.etc.entity.Pet;

public interface FamilyDao {
List<Family> findAll();
void add(Family family);
Family findById(int fid);
void update(Family family);

//ajax专用
int add(Pet pet);
void del(int fid);
void delpet(int pid);
}


  

package com.etc.dao.imp;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.etc.dao.FamilyDao;
import com.etc.entity.Family;
import com.etc.entity.Pet;

public class FamilyDaoImp extends HibernateDaoSupport implements FamilyDao
{
public List<Family> findAll()
{
String  hql  = "from Family";
return this.getHibernateTemplate().find(hql);
}

public void add(Family family)
{
this.getHibernateTemplate().save(family);

}

public Family findById(int fid) {

return this.getHibernateTemplate().get(Family.class, fid);
}

public void update(Family family) {
this.getHibernateTemplate().update(family);
}

public int add(Pet pet)
{
return (Integer) this.getHibernateTemplate().save(pet);
}

public void delpet(int pid) {
//先查再删除
Pet p = this.getHibernateTemplate().get(Pet.class, pid);
this.getHibernateTemplate().delete(p);
}

public void del(int fid)
{
//先查再删除
Family f = this.getHibernateTemplate().get(Family.class, fid);
this.getHibernateTemplate().delete(f);
}
}


  

package com.etc.entity;

import java.util.HashSet;
import java.util.Set;

/**
* Family entity. @author MyEclipse Persistence Tools
*/

public class Family implements java.io.Serializable {

// Fields

private Integer fid;
private String fname;
private Float wealth;
private Set pets = new HashSet(0);

// Constructors

/** default constructor */
public Family() {
}

/** minimal constructor */
public Family(Float wealth) {
this.wealth = wealth;
}

/** full constructor */
public Family(String fname, Float wealth, Set pets) {
this.fname = fname;
this.wealth = wealth;
this.pets = pets;
}

// Property accessors

public Integer getFid() {
return this.fid;
}

public void setFid(Integer fid) {
this.fid = fid;
}

public String getFname() {
return this.fname;
}

public void setFname(String fname) {
this.fname = fname;
}

public Float getWealth() {
return this.wealth;
}

public void setWealth(Float wealth) {
this.wealth = wealth;
}

public Set getPets() {
return this.pets;
}

public void setPets(Set pets) {
this.pets = pets;
}

}


  

package com.etc.entity;

/**
* Pet entity. @author MyEclipse Persistence Tools
*/

public class Pet implements java.io.Serializable {

// Fields

private Integer pid;
private Family family;
private String pname;
private Float price;
private Integer cohesion;

// Constructors

/** default constructor */
public Pet() {
}

/** minimal constructor */
public Pet(Family family, Float price, Integer cohesion) {
this.family = family;
this.price = price;
this.cohesion = cohesion;
}

/** full constructor */
public Pet(Family family, String pname, Float price, Integer cohesion) {
this.family = family;
this.pname = pname;
this.price = price;
this.cohesion = cohesion;
}

// Property accessors

public Integer getPid() {
return this.pid;
}

public void setPid(Integer pid) {
this.pid = pid;
}

public Family getFamily() {
return this.family;
}

public void setFamily(Family family) {
this.family = family;
}

public String getPname() {
return this.pname;
}

public void setPname(String pname) {
this.pname = pname;
}

public Float getPrice() {
return this.price;
}

public void setPrice(Float price) {
this.price = price;
}

public Integer getCohesion() {
return this.cohesion;
}

public void setCohesion(Integer cohesion) {
this.cohesion = cohesion;
}

}


  

<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.etc.entity.Family" table="family" catalog="java">
<id name="fid" type="java.lang.Integer">
<column name="fid" />
<generator class="identity" />
</id>
<property name="fname" type="java.lang.String">
<column name="fname" length="20" />
</property>
<property name="wealth" type="java.lang.Float">
<column name="wealth" precision="12" scale="0" not-null="true" />
</property>
<!-- 关联对象集合的配置,默认是lazy=true,延迟加载 .通过cascade配置成关联对象的级联添加-->

<set name="pets" inverse="true" lazy="true" cascade="save-update,delete">
<key>
<column name="fid" not-null="true" />
</key>
<one-to-many class="com.etc.entity.Pet" />
</set>
</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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.etc.entity.Pet" table="pet" catalog="java">
<id name="pid" type="java.lang.Integer">
<column name="pid" />
<generator class="identity" />
</id>
<many-to-one name="family" class="com.etc.entity.Family" fetch="select">
<column name="fid" not-null="true" />
</many-to-one>
<property name="pname" type="java.lang.String">
<column name="pname" length="20" />
</property>
<property name="price" type="java.lang.Float">
<column name="price" precision="12" scale="0" not-null="true" />
</property>
<property name="cohesion" type="java.lang.Integer">
<column name="cohesion" not-null="true" />
</property>
</class>
</hibernate-mapping>


  

package com.etc.test;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.etc.action.FamilyAction;
import com.etc.entity.Family;
import com.etc.entity.Pet;

public class TestFamliyAction
{
BeanFactory fac = new ClassPathXmlApplicationContext("applicationContext.xml");
FamilyAction action = (FamilyAction) fac.getBean("familyaction");

//@Test
public void test_findAll()
{
System.out.println(action.findall());
System.out.println(action.getList().size());
}
//@Test
public void test_add()
{
//使用创建对象,模拟表单的输入
Family f = new Family(10000f);
f.setFname("辛普森一家");

Set<Pet> pets = new HashSet<Pet>();
pets.add(new Pet(f,"蜥蜴",20f,5));
f.setPets(pets);

action.setFamily(f);
System.out.println(action.add()); //调用添加的控制器方法

//调用查询全部方法,判断有没有成功
System.out.println(action.findall());
System.out.println(action.getList().size());
}
@Test
public void test_delpet() throws IOException
{
Pet p = new Pet();
p.setPid(2);
action.setPet(p);
System.out.println(action.delpet());
}
}


  

applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>

<bean id="dao" class="com.etc.dao.imp.FamilyDaoImp">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="biz" class="com.etc.biz.imp.FamilyBizImp">
<property name="dao" ref="dao"></property>
</bean>
<bean id="familyaction" class="com.etc.action.FamilyAction" scope="prototype">
<property name="biz" ref="biz"/>
</bean>

<bean id="tm" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<tx:advice id="myadvice" transaction-manager="tm">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true"/>
</tx:attributes>
</tx:advice>

<aop:config>
<aop:pointcut expression="execution(* com.etc.biz.*.*(..))" id="mypc"/>
<aop:advisor advice-ref="myadvice" pointcut-ref="mypc"/>
</aop:config>

</beans>


  

struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="p" namespace="/" extends="struts-default">

<action name="*" class="familyaction" method="{1}">
<result name="findall_success">
/showlist.jsp
</result>
<result name="add_success" type="chain">
<param name="actionName">findall</param>
<param name="namespace">/</param>
</result>
<result name="toupdate_success">
/update_family.jsp
</result>
<result name="update_success" type="chain">
<param name="actionName">findall</param>
<param name="namespace">/</param>
</result>
<result name="addpet_success" type="stream">
</result>
<result name="delpet_success" type="stream">
</result>
<result name="delete_success" type="chain">
<param name="actionName">findall</param>
<param name="namespace">/</param>
</result>

<result name="input">
/show_input_error.jsp
</result>
<result name="my_error">
/show_my_error.jsp
</result>
</action>

</package>

</struts>


  

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>  <!-- 配置全局的配置参数 ,spring配置文件的位置 -->
<param-name>
contextConfigLocation
</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<!-- 通过spring提供的web监听器来启动对象工厂 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 声明1个延迟加载过滤器 -->
<filter>
<filter-name>lazyFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<!--设定过滤器只对.action请求有效 -->
<filter-mapping>
<filter-name>lazyFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping></web-app>


  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'add_famliy.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>

<form action="add.action" method="post">
家庭名: <input name="family.fname" /> <br/>
财产:   <input name="family.wealth"/><br/>
宠物名:  <input name="pets[0].pname">
宠物价格:  <input name="pets[0].price">
亲密度:  <input name="pets[0].cohesion">
<input type="button" value="+"/>
<br/>
<input type="submit" value="添加"/>
</form>
</body>
</html>


  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'showlist.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<script>
alert('输入有误!');
history.go(-1);
</script>

<s:fielderror/>

</body>
</html>


  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'showlist.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<script>
alert("${msg}");
location.href="findall.action";
</script>

<s:fielderror/>

</body>
</html>


  

<%@ page language="java" import="java.util.*,com.etc.entity.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'showlist.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>
<script>
function showmsg(isshow,msg)
{
if(isshow)
alert(msg);
}

</script>
<body onload="showmsg(${isshow},'${msg}')">
家庭信息<br/>
<table border="1">
<tr>
<th>编号</th>
<th>名称</th>
<th>资产</th>
<th>宠物数</th>
<th>操作</th>
</tr>
<s:iterator value="list" var="f">
<tr>
<td>${f.fid }</td>
<td>${f.fname }</td>
<td>${f.wealth }</td>
<td>
<%= ((Family) request.getAttribute("f")).getPets().size() %>
</td>
<td><a href="delete.action?family.fid=${f.fid}">删除</a>

<a href="toupdate.action?family.fid=${f.fid}">修改</a></td>
</tr>

</s:iterator>

</table>
<br/>
<a href="add_family.jsp">添加</a>

</body>
</html>


  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<style>
input
{
width: 60px;
}

</style>
<head>
<base href="<%=basePath%>">

<title>My JSP 'add_famliy.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<script type="text/javascript" src="js/jquery.js">
</script>
<script>
$(document).ready(
function()
{
$("#add").click(
function()
{
addnew();
}
);
}

)
function addnew()
{
var pname = window.prompt("宠物名","宠物名");
if(pname==null)
return;
var price = window.prompt("价格","100");
if(price==null)
return;
var cohesion = window.prompt("亲密度","50");
if(price==null)
return;
var msg = pname+","+price+","+cohesion+",确认添加 ?";

if (window.confirm(msg))
send_ajax_add_request(pname,price,cohesion);
}
function send_ajax_add_request(pname,price,cohesion)
{
var paras = "pet.pname="+pname+"&pet.price="
+price+"&pet.cohesion="+cohesion+"&family.fid=${family.fid}";
$.ajax(
{
type:"post",
url:"addpet.action",
data:paras,
dataType:"json",
success:function(obj)
{
var old = $("#sp").html();
var html = "<span id='inner_sp_"+obj.pid+"'>"
+"编号:  <input name='pets["+petcount+"].pid' value='"+obj.pid+"' readonly='readonly'>"
+"宠物名:  <input name='pets["+petcount+"].pname' value='"+obj.pname+"'>"
+"宠物价格:  <input name='pets["+petcount+"].price' value='"+obj.price+"'>"
+"亲密度:  <input name='pets["+petcount+"].cohesion' value='"+obj.cohesion+"'>"
+"<input type='button' value='删除' onclick='send_ajax_delete_request("+obj.pid+")'/><br/>"
+"</span>";
$("#sp").html(old+html);

petcount++;
}
}
);
}

function send_ajax_delete_request(pid)
{
var paras = "pet.pid="+pid;
var url = "delpet.action";
$.post(url, { "pet.pid": pid},
function(txt){
if(txt=="1")
$("#inner_sp_"+pid).remove();
});
}

</script>
<body>

<form action="update.action" method="post">
编号:
<input name="family.fid" readonly="readonly" value="${family.fid }" />
<br />
家庭名:
<input name="family.fname" value="${family.fname }"/>
<br />
财产:
<input name="family.wealth" value="${family.wealth }"/>
<br />

<s:set var="i" value="0"/>
<span id="sp">
<s:iterator value="family.pets" var="p">
<span id="inner_sp_${p.pid}">
编号:  <input name="pets[${i}].pid" value="${p.pid }" readonly="readonly">
宠物名:  <input name="pets[${i}].pname" value="${p.pname }">
宠物价格:  <input name="pets[${i}].price" value="${p.price }">
亲密度:  <input name="pets[${i}].cohesion" value="${p.cohesion }">
<s:set var="i" value="#attr.i+1"/>
<input type="button" value="删除" onclick="send_ajax_delete_request(${p.pid })" /><br/>
</span>
</s:iterator>
</span>
<script>
var petcount = ${i}; //记录总的宠物个数
</script>

<br />
<input id="add" type="button" value="添加宠物"/><br/>
<input type="submit" value="修改" />
</form>
</body>
</html>


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: