FSSK反省

 由于最近在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自动排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值