![](/images/smiles/icon_cool.gif)
,
说的不如给你们看
一:接口BO DmOrderPriceImpl
public List queryChargeType(int priceId) {
// TODO 自动生成方法存根
return this.dmOrderPriceDao.queryDmChargeType(priceId);
}
二:接口 Dao DmOrderPriceDaoImpl
public List queryDmChargeType(int priceId) {
// TODO 自动生成方法存根
String hql="from DmChargeType as d left join fetch d.dmOrderPrice as dp where dp.id="+priceId;
return this.hibernateTemplate.find(hql);
}
三:配置文件
<?xml version="1.0"?>
<!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 - Hibernate Tools
-->
<hibernate-mapping>
<class name="com.superman.model.DmChargeType" table="dm_chargeType" catalog="sanco_superman">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<many-to-one name="dmOrderPrice" class="com.superman.model.DmOrderPrice" fetch="select">
<column name="dm_priceId" />
</many-to-one>
<property name="max" type="java.lang.Integer">
<column name="max" />
</property>
<property name="min" type="java.lang.Integer">
<column name="min" />
</property>
<property name="cost" type="java.lang.Float">
<column name="cost" precision="9" scale="3" />
</property>
</class>
</hibernate-mapping>
主键表:
<hibernate-mapping>
<class name="com.superman.model.DmOrderPrice" table="dm_order_price" catalog="sanco_superman">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="price" type="java.lang.Float">
<column name="price" precision="9" scale="3" />
</property>
<set name="dmChargeTypes" inverse="true">
<key>
<column name="dm_priceId" />
</key>
<one-to-many class="com.superman.model.DmChargeType" />
</set>
</class>
</hibernate-mapping>
struts.config
<form-bean name="dmOrderPriceForm" type="com.sanco.supperman.struts.form.DmOrderPriceForm" />
<action
attribute="dmOrderPriceForm"
name="dmOrderPriceForm"
parameter="method"
path="/xwfbadmin/admin/manage/dmManager/addChargeType"
scope="request"
type="com.sanco.supperman.struts.action.AddChargeTypeAction">
<forward name="init" path="/xwfbadmin/admin/manage/dmManager/addChargeType.do?method=init" />
<forward name="success" path="/xwfbadmin/admin/manage/dmManager/dmChargeType_add.jsp" />
</action>
四:页面
提交过来的页面(没有javascript --|||,这我还是晓得看的)
<%@ page language="java" pageEncoding="gbk"
contentType="text/html; charset=gbk"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>提成折扣设置</title>
</head>
<body>
<form action="addDmprice.do" method="post" name="form1">
<table align="center">
<tr>
<td>价格:</td><td><input type="text" name="price" /></td>
</tr>
<tr>
<td><input type="submit" value="添加价格" /></td>
</tr>
</table>
</form>
<logic:present name="emplist" scope="request">
<table width="500" align="center">
<tr>
<td background="#fffff">编号</td>
<td background="#fffff">价格</td>
<td background="#fffff">操作</td>
</tr>
<logic:iterate id="emp" name="emplist" scope="request">
<tr>
<td>
<bean:write name="emp" property="id" />
</td>
<td> <bean:write name="emp" property="price" /></td>
<td><a href="updateOrderPrice.do?id=<bean:write name="emp" property="id" />&price=<bean:write name="emp" property="price" />" >修改</a
>|<a href="addChargeType.do?method=init&id=<bean:write name="emp" property="id" />" >设定折扣区间</a></td>
</tr>
</logic:iterate>
</table>
</logic:present>
</body>
</html>
显示成功的页面
<%@ page language="java" pageEncoding="gbk"
contentType="text/html; charset=gbk"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>提成折扣设置</title>
<style type="text/css">
<!--
body,td,th {
font-family: 宋体;
font-size: 12px;
}
body {
margin-left: 0px;
margin-top: 20px;
margin-right: 0px;
margin-bottom: 20px;
}
-->
</style>
</head>
<body>
<form action="addChargeType.do?method=add&id=${priceId}" method="post" name="form1">
<table align="center">
<input type="hidden" name="id" value="${priceId}" />
<tr>
<td>最大份数:</td><td><input type="text" name="max" /></td>
</tr>
<tr>
<td>最小份数:</td><td><input type="text" name="min" /></td>
</tr>
<tr>
<td>区间折扣:</td><td><input type="text" name="cost" /></td>
</tr>
<tr>
<td><input type="submit" value="设置折扣区间" /></td>
</tr>
</table>
</form>
<logic:present name="emplist" scope="request">
<table width="500" align="center">
<tr>
<td background="#fffff">编号</td>
<td background="#fffff">最大份数</td>
<td background="#fffff">最小份数</td>
<td background="#fffff">区间折扣</td>
<td background="#fffff">价格</td>
<td background="#fffff">操作</td>
</tr>
<logic:iterate id="emp" name="emplist" scope="request">
<tr>
<td>
${emp.id}
</td>
<td> <bean:write name="emp" property="max" /></td>
<td>${emp.min}</td>
<td>${emp.cost}</td>
<td>${emp.dmOrderPrice.price}</td>
<td><a href="addChargeType.do?method=delete&typeid=${emp.id}&priceid=${priceId}">删除</a></td>
</tr>
</logic:iterate>
</table>
</logic:present>
</body>
</html>
五:action
public class AddChargeTypeAction extends DispatchAction {
/*
* Generated Methods
*/
private Object getBean(String name)
{
return MyBeanDelegate.getInstance().getBean(name);
}
private IDmOrderPriceBo dmOrderPriceBo=(IDmOrderPriceBo)getBean("dmOrderPricebo");
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward init(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DmOrderPriceForm dmOrderPriceForm = (DmOrderPriceForm) form;// TODO Auto-generated method stub
//查询所有这个价格的折扣区间
String id=request.getParameter("id");
List list=null;
list=dmOrderPriceBo.queryChargeType(Integer.valueOf(id)); request.setAttribute("emplist", list);
request.setAttribute("priceId", id);
return mapping.findForward("success");
}
}
-----------------------------------------------------------------
我页面上是用的EL表达式打出来的,去掉也好了,不知道EL为什么不行??完全没得道理。
能够看出原因的,我称他为神,女的就以身相许!
分享到:
相关推荐
在Struts2中,防止重复提交是一个重要的问题,因为它可能导致数据不一致性和服务器资源的浪费。本文将详细介绍如何在Struts2中解决这个问题,以及相关的技术概念。 首先,我们要理解Struts2中的拦截器(Interceptor...
- 安装并配置好服务器(如Tomcat),部署你的Web项目,然后在浏览器中访问`hello.jsp`页面,输入姓名并提交,Struts2框架会根据配置处理请求,调用`StrutsAction`的`execute()`方法,并根据返回的结果展示相应的...
Struts2默认提供了一些拦截器来帮助处理这个问题,但如题目所述,由于性能考虑,项目组决定不使用Struts2的标签,因此需要自定义拦截器来实现防止重复提交的功能。 自定义拦截器的实现主要分为以下几个步骤: 1. *...
### Struts2防止重复提交的解决方案 #### 一、引言 在Web应用程序开发中,一个常见的问题是如何有效地防止表单的重复提交。这不仅能够提高用户体验,还能增强系统的安全性。Struts2作为一款广泛使用的Java Web应用...
**Struts2 拦截器**是在Action执行前后插入的代码片段,它们按照定义的顺序组成一个拦截器链。每个拦截器都有机会处理请求,决定是否允许Action执行,以及如何处理Action的返回结果。拦截器可以用于数据校验、登录...
2. **配置文件**:用于配置Struts2的运行参数,如Action的映射、拦截器的配置等,是Struts2框架正常工作的关键。 3. **动作类**:即Action类,用于处理具体的业务逻辑,是Struts2的核心部分之一。 4. **JSP**:用于...
总结,Struts2拦截器是其核心特性之一,它增强了框架的功能性和灵活性,使得开发者能够更轻松地处理诸如数据校验、事务控制等常见问题。理解和掌握拦截器的原理和用法,对于提升Java Web开发的效率和代码质量具有...
Struts Token机制是一种防止表单重复提交的有效策略,尤其在处理关键操作时,如金融交易或数据修改,防止用户意外或恶意多次点击提交按钮导致的数据重复性问题。下面将详细介绍Struts Token的工作原理、实现方式及其...
页面使用了Struts2的标签库,并通过`<s:form>`标签指定了表单提交的Action和编码方式为`multipart/form-data`,以支持文件数据的传输。 ```jsp <s:form action="multiFileUpload" method="post" enctype="multipart...
- 页面通过`<s:form>`标签定义了表单元素,它与Struts2的Action进行交互。 - `action`属性指定了提交表单时要调用的Action类。 - `name`属性为输入字段命名,这些字段在服务器端会被Action类的相应属性绑定。 - ...
这意味着当用户提交表单时,第一个Action处理请求,并可能将控制权传递给第二个Action,后者继续使用同一个表单对象进行后续处理。 ### 总结 Struts框架中的Action跳转机制非常灵活,可以根据实际需求选择合适的...
在Struts2框架中,防止重复提交是一个重要的安全性考量,因为重复提交可能导致数据不一致性和资源浪费。在上述描述中,给出了三种主要方法来解决这个问题: 1) **使用 `<s:token>` 标签** Struts2 提供了一个称为 ...
1. **登录验证**:用户提交登录表单时,Struts2的Action类会接收到这些数据。Action类负责验证用户名和密码的正确性,通常通过与数据库进行比较。如果验证成功,将登录信息存储到session中。 ```java public class ...
- Struts2提供ActionError和FieldError对象来存储校验错误,它们会被自动映射到JSP页面上显示。 - 可以通过ActionSupport类的`addActionError`和`addFieldError`方法添加错误信息。 6. **实际应用示例**: - ...
Struts2框架提供了强大的MVC模型,使得Action类可以通过配置struts.xml文件与视图和控制器进行交互。在这个场景中,我们需要配置一个特定的Result类型,比如`stream`,来直接输出验证码图片的字节流。 在处理用户...
如果在这两个阶段都没有发现错误,Struts2会继续执行Action的`execute`方法,调用相应的业务逻辑。 为了实现基于代码的验证,你需要创建一个Action类,通常这个类会继承自`ActionSupport`。在该类中,你可以重写`...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。拦截器是Struts2框架中的一个重要概念,它允许开发者在动作执行前后插入自定义逻辑,比如数据验证、日志记录、性能监控等。在这个场景...
为了解决这个问题,我们需要在Struts2的Action类中正确地管理文件流。在处理文件下载时,应使用`ServletResponse`的`getOutputStream()`方法来获取输出流,然后通过这个流逐块写入文件内容。同时,我们需要监听...
### Struts2工作流程详解 #### 一、概述 Struts2是一个开源的Web应用程序框架,它是基于Java Servlet API设计...对于开发者而言,理解Struts2的工作流程不仅有助于更好地使用该框架,还能够提升解决实际问题的能力。