由于最近在FSSK项目中的一些失误,今做以下总结(经验):
1、在SSH结合时,如果没有用到代理org.springframework.web.struts.DelegatingActionProxy,则可以在action中
WebApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servlet.getServletContext());
viewDAO = (StockcheckviewDAO) app.getBean("StockcheckviewDAO");
来获得DAO。但这对于一个程序员来是非常不好的。因此,在以后的项目中,应注意这个问题。
2、这是一个关于SSH结合时所以用到的测试,这里我只写一个例子:
package com.zdpy.fssk.mwc.action;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.zdpy.fssk.mwc.dao.Stockcheck;
import com.zdpy.fssk.mwc.dao.StockcheckDAO;

import junit.framework.TestCase;

public class CheckNoTest extends TestCase {

private ApplicationContext applicationContext;
@Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
applicationContext = new FileSystemXmlApplicationContext("/src/applicationContext.xml");
}
public void testGetCheckNo() {
StockcheckDAO dao = (StockcheckDAO) applicationContext.getBean("StockcheckDAO");
CheckNo checkNo = new CheckNo();
assertEquals("22222223", checkNo.getCheckNo(dao));
}

}
这里要注意的是所用到的ApplicationContext类、setUp()方法等
3、如果form是动态的,且在第一个页面中设置了form中的一个或多个属性值,那么在以后的页面中,如果也有这个属性存在,就可以不必再设置
4、在action中得到一个List<dbtable> list值,且request.setAttribute("list", list), 则在页面中可以这样使用:
<logic:iterate id="stockcheck" name="list">
<tr>
<td><bean:write name="stockcheck" property="itemtypename" /></td>
<td><bean:write name="stockcheck" property="brandname" /></td>
<td><bean:write name="stockcheck" property="colorname" /></td>
<td><bean:write name="stockcheck" property="itemsize" /></td>
<td><bean:write name="stockcheck" property="unit" /></td>
<td><bean:write name="stockcheck" property="averageprice" /></td>
<td><html:text property="realStock" value=""></html:text></td>
<td><bean:write name="stockcheck" property="systemstock"/></td>
</tr>
</logic:iterate>
其中,在<logic:iterate id="stockcheck" name="list">中,id值是自己随意取的,name值是request的属性;
在<bean:write name="stockcheck" property="itemtypename" />中,name值是上面的id值对应,property值是dbtable(从数据库映射过来的类)中的属性
5、今天把系统重装了,再运行项目时出现org.springframework.beans.factory.BeanCreationException错误,找了半天也没办法,说是无法加载sessionFactory什么的,最后将数据库删掉重新建了一道,嘿嘿,好了。我怀疑是数据库的驱动出了问题
6、前提:在action中从oracle读取一组数据传到JSP页面,再将这组数据的某个属性值从<a href>传回action做为一个条件,再从oracle获取满足该条件的数据。
问题:经<a href>传回的值出现乱码,这将会用到JAVA的转码
解决方案:
第一种:转码
String str = "中文";
String str = new String(str.getBytes("iso8895_1"), "gbk");
第二种:非转码。这里我从JSP页面传回action一个属性值对应的一个ID(32位自动生成),再用这个ID从oracle获取满足条件的数据
7、今天在用oracle数据库时,获取一个表中记录的最后一条数据时,总不是我想要的,哎,才想起oracle在存储数据时为根据ID自动排序
1、在SSH结合时,如果没有用到代理org.springframework.web.struts.DelegatingActionProxy,则可以在action中


2、这是一个关于SSH结合时所以用到的测试,这里我只写一个例子:


























3、如果form是动态的,且在第一个页面中设置了form中的一个或多个属性值,那么在以后的页面中,如果也有这个属性存在,就可以不必再设置
4、在action中得到一个List<dbtable> list值,且request.setAttribute("list", list), 则在页面中可以这样使用:












在<bean:write name="stockcheck" property="itemtypename" />中,name值是上面的id值对应,property值是dbtable(从数据库映射过来的类)中的属性
5、今天把系统重装了,再运行项目时出现org.springframework.beans.factory.BeanCreationException错误,找了半天也没办法,说是无法加载sessionFactory什么的,最后将数据库删掉重新建了一道,嘿嘿,好了。我怀疑是数据库的驱动出了问题
6、前提:在action中从oracle读取一组数据传到JSP页面,再将这组数据的某个属性值从<a href>传回action做为一个条件,再从oracle获取满足该条件的数据。
问题:经<a href>传回的值出现乱码,这将会用到JAVA的转码
解决方案:
第一种:转码


7、今天在用oracle数据库时,获取一个表中记录的最后一条数据时,总不是我想要的,哎,才想起oracle在存储数据时为根据ID自动排序