1.spring3.2中 @component注解要引入spring-context-...jar包
2.由于在spring中配置事务,要用到org.apache.commons.dbcp.BasicDataSource这个类,因此你还要下载apache的commons-dbcp-1.4.jar 以及这个dbcp包依赖的commons-pool-1.6.jar包
3.hibernate4整合spring3.1的过程中,发现了java.lang.NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider异常,查了一下相关资料,原来发现hibernate4已经将hibernate3的一些功能改掉了,在hibernate4已经不使用CacheProvider了,所以做了以下修改,
原先:<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
改成:<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
4.spring事务配置:
org.springframework.orm.hibernate4.HibernateTransactionManager,hibernate3要改成hibernate4
5.hibernate4不支持hibernateTemplate了,只用hibernate原生api操作持久化对象
6.hibernate3.5以后自带注解包
7.<constant name="struts.i18n.encoding" value="GBK" />只能解决通过post方式提交的乱码,get方式不行
8.在struts.xml中加入<constant name="struts.i18n.encoding" value="GB2312"></constant>后可以解决FORM表单中提交中文参数出现乱码的问题,但是不能解决URL传递中文参数(比如hello.action?msg=哈哈之类)出现乱码的问题
解决方法:
修改 tomcat/conf/server.xml
<Connector acceptCount='100' connectionTimeout='20000' debug='0'
disableUploadTimeout='true' enableLookups='false'
maxSpareThreads='75' maxThreads='150' minSpareThreads='25'
port='8080' redirectPort='8443' URIEncoding='GBK'/>
加上 URIEncoding='GBK' 即可。
9.jsp中href不跳转(停在当前页面)不要用href="#",而用href="javascript:void(0)"
10.iterator 标签中的status属性代表当前迭代的位置;
#of.last用于判断当前是否跌到的最后一个元素;
last 返回一个boolean类型;
first 返回一个boolean类型;
当声明iterator的status属性时,通过#statusName.method 可以使用以下方法:
even : boolean - 如果当前迭代位置是偶数返回true
odd : boolean - 如果当前迭代位置是奇数返回true
count : int - 返回当前迭代位置的计数(从1开始)
index : int - 返回当前迭代位置的编号(从0开始)
first : boolean - 如果当前迭代位置是第一位时返回true
last : boolean - 如果当前迭代位置是最后一位时返回true
modulus(operand : int) : int - 返回当前计数(从1开始)与指定操作数的模数
11.struts2随提供了循环控制标签<s:iterator/>,使用起来也比较方便,但在具体的应用中,也有不方便之处,他没有像struts1的<c:foreach/>标签,提供了begin、end等属性,支持自增变量的循环。遇到这种问题怎么解决?struts2提供了<s:bean/>标签,且提供了一个bean类:org.apache.struts2.util.Counter,该类中有first、last等属性,可用使用它获取自增值,如下:
<s:bean name="org.apache.struts2.util.Counter"id="counter">
<s:param name="first" value="1"/>
<s:param name="last" value="10"/>
<s:iterator>
<s:property/>
</s:iterator>
</s:bean>
其中first属性指定循环起始值,last指定循环终止值,其它相关属性可以查看org.apache.struts2.util.Counter类源码。在下面迭代器中输入循环的当前值,即:current-1
例1:分页中,select自增计数的控制
<select name="page"
onchange="javascript:window.location='newslist.jsp?page='+this.value">
<s:beanname="org.apache.struts2.util.Counter">
<s:param name="first" value="1"/>
<s:param name="last" value="pageCount"/>
<s:iterator>
<option value="<s:property/>"
<s:iftest="%{page==(current-1)}">selected</s:if> >
<s:property />
</option>
</s:iterator>
</s:bean>
</select>
12.struts+spring的action测试
加入struts2-junit-plugin-2.3.15.1.jar(没spring只需此包)
spring-test-3.2.3.RELEASE.jar
若有spring则继承StrutsSpringTestCase,单struts则继承StrutsTestCase
测试例子:
public class DownLoadActionTest extends StrutsSpringTestCase{
private ActionProxy proxy;
private DownLoadAction dla;
@Override
protected String[] getContextLocations() {
String arr[] ={"beans.xml"};
return arr;
}
private void init(){
request.setParameter("programId", "7");
proxy=getActionProxy("downLoadReportFile");
dla=(DownLoadAction)proxy.getAction();
}
@Test
public void testDownLoadReportFile() throws Exception{
init();
proxy.execute();
/*DownLoadAction downloadaction = new DownLoadAction();*/
dla.downLoadReportFile();
}
}
13.struts2 日期
(1)、在jsp文件中加入<%@ taglib uri="/struts-dojo-tags" prefix="sx"%>
(2)、在head里加入<sx:head/>
(3)、将<s:datetimepicker label="XXXX" name="XXXX"></s:datetimepicker>改为<sx:datetimepicker label="XXXX" name="XXXX"></sx:datetimepicker>
(4)、将struts2-dojo-plugin-2.1.6.jar拷贝到/web-inf/lib下
在ie浏览器下不能显示控件,firefox和chrome可以
14. 解决session超时跳转主页,跳出frameset
<script language="JavaScript">
if (window != top)
top.location.href = location.href;
</script>
15.在hibernate中,设置fetchtype.EAGER要小心。设置成EAGER,则查询时是将多个表join的
16.用struts拦截器进行访问控制时,只能控制action的,不能限制用户直接输入jsp页面访问,拦截jsp方法有:
(1)可以通过自定义filter来控制,要把拦截的和不用拦截的(如登录界面)放在不同文件夹下
(2)可以把所有的jsp都放在WEB-INF下,此方法在tomcat服务器下可以用,在其他服务器(如weblogic)下不一定可行。
(3)写一个jsp页面判断,其他需要访问控制的<%@include file="" %> ,注意不能用<jsp:include>方法,此方法response.sendRedirect不管用
(4)acegi框架
17. struts2 json使用
(1)jar包:commons-beanutils-1.7.0.jar
commons-lang-2.1.jar
commons-collections-3.1.jar
ezmorph-1.0.3.jar
json-lib-2.1.jar
jsonplugin-0.33.jar
(2) Bean------->JSONObject
Map ------->JSONObject
List------->JSONArray
(3)JSONObject.fromObject(list)后面的代码没执行
commons-lang3的包里没有了NestableRuntimeException这个类.
解决办法:只需把commons-lang的jar包换成2.6或之前的即可.
18. utf-8和gbk两种编码不要混用,easyui只能utf-8?中文包为UTF-8,可以将它转换成GBK
19.IE拒绝访问
<form method="post" name="fileform" id="fileform" enctype="multipart/form-data" action="uploadexamineFile?businessId=${b.businessID }&programId=${programId}&programName=${programName}">
<input type="file" name="examineFile" id="examineFile${b.businessID }"
onchange="this.form.submit();" style="display:none" class="required" accept="application/vnd.ms-excel,application/vnd.openxmlformats- officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12"/>
<input id="uploadbutton${b.businessID}" type="submit" style="display:none" />
</form>
<a href='javascript:void(0);' onclick="document.getElementById('examineFile${b.businessID}').click();return false;">[上传审核列表文件]</a></div></td>
onchange="this.form.submit();"时IE拒绝访问,其他浏览器正常,此情况是IE出于安全考虑
解决方法:
http://jsfiddle.net/djibouti33/uP7A9/
http://stackoverflow.com/questions/9396411/ie-javascript-form-submit-with-file-input
20.注意路径问题,设置basepath,IE和其他浏览器的相对路径不同
21.注意文件的组织,考虑权限控制
22.mysql在windos下数据库名和表名不区分大小写,在linux下区分大小写,设计的时候要注意
相关推荐
支付宝转账到个人是在线支付流程中的一个重要环节,尤其是在电子商务和移动支付领域。在这个过程中,开发者通常需要使用支付宝提供的API接口来实现从应用或网站向个人账户转账的功能。本示例是针对Java平台的,需要...
随着移动互联网技术的发展,第三方支付已成为现代电子交易的基础。第三方支付平台作为买家和卖家之间的中介,为双方提供安全、便捷的资金转移服务。而在此基础上发展起来的第四方支付,则是进一步整合了多个第三方...
总结来说,"JSP项目纯净模版"是一个全面的开发工具,涵盖了从设计到实施的各个环节,旨在简化Java Web应用的开发过程,特别适合初学者快速上手或者有经验的开发者快速搭建项目框架。通过深入理解和使用这个模版,...
总结,电子签名在工程项目档案信息化管理中的应用是解决传统签名问题的有效途径,它能够优化流程,提高效率,保障文件的安全性和法律效力,是推动工程项目管理现代化的重要工具。未来,随着信息技术的不断发展,电子...
在IT行业中,支付接口开发是金融系统与电子商务平台交互的核心环节。本文将深入解析基于Java的农业银行支付接口,提供相关知识点,以帮助开发者理解和实现此类接口。 标题"abcPayment.zip_abcPayment_abc支付接口_...
总结,这个"人工智能-项目实践-期末网站设计-电子商务系统设计期末大作业(网上菜市场网站移动web版)"涵盖了Web开发的多方面技术,特别是人工智能在电子商务领域的应用,对于提升学生的实际操作能力和创新能力具有...
其中,"Thinkphp5晒单版微交易美金版无加密源码,可群控单控支持第三方支付"是一个引人注目的项目,它结合了高效开发框架Thinkphp5、移动友好H5技术以及灵活的支付解决方案,为用户提供了安全、便捷的微交易体验。...
总结起来,TTMS是一款全方位的影院管理软件,集成了售票、放映厅和票务管理的关键功能,同时提供了项目管理的工具,助力影院提升运营效率,优化用户体验。其强大的功能和灵活的配置,使得TTMS成为了现代影院不可或缺...
为了满足开发者在项目中快速、高效地集成支付功能,easyPay支付SDK扩展包应运而生,其最新版本v2.10.6.zip提供了一整套完整的工具和服务,旨在简化支付流程的接入,并确保交易的安全性和稳定性。 SDK(Software ...
总结起来,"JAVA电子商城系统的设计与实现"是一个涉及多领域知识的复杂工程,需要从需求分析、架构设计、数据库规划、前后端开发、支付集成、测试到运维的全面考虑。通过JAVA强大的技术和生态系统,我们可以构建出...
随着互联网技术的发展,电子合同在软件开发领域中的应用越来越广泛,尤其是在聘用程序员和其他IT专业人才时,使用电子合同能够简化流程,提高效率。 【合同类型与期限】 合同类型分为固定期限、无固定期限和以完成...
总结来说,"电子商务管理系统"是一个复杂的Java EE Web项目,融合了多种技术来实现全面的在线商务功能。通过理解和熟练掌握这些技术,开发者可以构建出高效、可靠且用户友好的电子商务平台。在实际开发过程中,团队...
本项目是一个完整的JavaWeb网上图书商城系统,旨在通过一系列技术手段实现一个能够在线浏览、选购图书,并完成支付等购物流程的电子商务平台。该系统不仅适用于学术研究、课程设计等场景,同时也为学习JavaWeb开发...
学习这个网上商城项目源码,不仅可以深化对Java Web开发的理解,还可以接触到实际项目中的问题,如性能优化、安全性考虑、并发处理等。同时,参与讨论和交流经验,可以从他人的见解中获得新的灵感,共同进步。 总结...
SpringBoot是Spring的简化版,它默认配置了许多常见的服务,如嵌入式Tomcat服务器、数据源、缓存等,使得开发者可以快速构建应用程序。在本项目中,SpringBoot被用来整合SSM框架,简化了配置,减少了启动时间和依赖...
2. 项目部分:实现完整的电子商务功能,如用户注册登录、商品浏览、购物车管理、订单生成与支付、评价系统等。 总结,Java电子商务系统结合了Java技术的强大功能和SQLServer2000数据库的稳定存储,为用户提供了一个...
《电子购物商城:基于.NET 2005的ASP.NET C#实现》 ...总结来说,这个电子购物商城项目充分展示了.NET 2005和ASP.NET C#的综合运用,通过精心设计和编码,实现了高效、安全、用户友好的在线购物环境。
神池风电场EPC(Engineering, Procurement, Construction)工程项目面临周期短、专业交叉多、文件交互频繁及竣工资料归档任务艰巨等问题,因此引入信息化管理成为提升项目管理水平的关键。 在项目管理信息化实践中...
总结来说,"Java开发项目网上商城SSH"是一个全面的电子商务平台,集成了Spring、Struts和Hibernate三大框架,实现了用户购物、管理、支付等多种功能,其背后涉及到的技术和实践涵盖了软件开发的多个方面。
总结来说,《基于Vue+SSM框架的汇美食电子商城》项目涵盖了现代Web开发的多个重要领域,包括前后端分离、数据库设计、移动应用开发、用户认证与权限控制等,对于学习和实践这些技术有着很高的参考价值。