软工实践心得(3)

在Jdk1.7  tomat6.0的环境下完成了这几天的学习,首先列出了之前做客户信息维护时遇到的问题,然后做了新的任务:库存信息管理。

一、之前遇到的问题

1.在修改过程中报错,为ArrayList的越界错误:数组超出索引。数组越界了,非法查询数组,大于或小于了数组的下标范围。需要检查下数组的访问。

2.UpdatePreviewCustAction.java中的cust与custUpdate.jsp中的cust需要对应。而我原先写的customer导致数据库中cust的值为空值,所以修改总是出错。CustServiceImpl.java中的findCustomerById返回的总是空值,导致错误。

3.UpdateCustAction.java中的方法写错为customer,报错,以至于修改界面无法保存。

4.在显示电话号码这个功能时,缺少Cust.java中的电话号码的方法,增加后,得以显示。

5.在Dao里面定义接口,用interface定义对象,查询的列表是一个集合,查询一个对象通过类的对象的id号,都是通过HibernateDaoSupport实现。

ActionSupport接受前端传过来的请求处理

404错误:路径错误

500错误:属性错误

二、之后的新项目:库存管理

接下来几天,我们分组做有关订单管理和库存管理的任务。我们主要做库存管理。

主要任务的流程就是以下几个方面

①撘环境 ssh

②写配置文件

③分层实现:

1.Bean:Java class、xxx.hbm.xml

2.DAO:DAO接口、DAO实现

3.Service:Service接口、Service实现

4.Action:Action→Service→DAO

首先,订单管理的属性:

1.订单编号

2.商品名称

3.商品价格

4.支付方式:在线支付、微信、货到付款

5.客户姓名

6.联系方式

7.送货地址

时间:Date ——年月日

Time ——时分秒

库存管理:查看销售变化

1.商品编号

2.商品名称

3.商品价格:售价、进价

4.进货渠道

5.库存数量

JSP→Struts:前端映射、后端Action映射

对于之后做出的库存管理,与之前做的客户信息维护大同小异,唯一有点区别的就是新增了excel表格,对于存进数据库的商品库存信息,可以通过GenerateExcelAction.java以及在DAO与Service中新增方法,在struts.xml和applicationContext.xml配置文件以及在kcInfo.jsp增加“生成EXCEL”按钮。

GenerateExcelAction.java

package com.crm.action;

import java.io.InputStream;

import com.crm.service.KcService;

import com.opensymphony.xwork2.ActionSupport;

public class GenerateExcelAction extends ActionSupport {

private static final long serialVersionUID = 7213178640352795420L;

private KcService excelService;

public KcService getExcelService() {

return excelService;

}

public void setExcelService(KcService excelService) {

this.excelService = excelService;

}

public InputStream getDownloadFile(){

return this.excelService.getInputStream();

}

@Override

public String execute() throws Exception {

// TODO Auto-generated method stub

return SUCCESS;

}

}

applicationContext.xml

<!-- 导出excel -->

<bean id="generateExcelAction" class="com.crm.action.GenerateExcelAction" scope="prototype">

<property name="excelService">

<ref bean="kcService"></ref>

</property>

</bean>

struts.xml

<!-- 导出excel -->

<action name="generateExcel" class="generateExcelAction">

<result name="success" type="stream">

<param name="contentType">application/vnd.ms-excel</param>

<param name="contentDisposition">filename="AllKc.xls"</param>

<param name="inputName">downloadFile</param>

</result>

</action>

KcServiceImpl.java

public InputStream getInputStream() {

//Apache poi hssf对象

HSSFWorkbook wb = new HSSFWorkbook();

//创建sheet

HSSFSheet sheet = wb.createSheet("sheet1");

//表头开始

//创建行

HSSFRow row = sheet.createRow(0);

//创建单元格 第一个单元格从零开始 第一列

HSSFCell cell = row.createCell((short)0);

//设置编码

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue("商品编号");

//第二列

cell = row.createCell((short)1);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue("商品名称");

//第三列

cell = row.createCell((short)2);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue("商品价格");

//第四列

cell = row.createCell((short)3);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue("商品渠道");

//第五列

cell = row.createCell((short)4);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue("库存数量");

//表头结束

//查询数据库

List<Kc> list = this.kcDao.findAllKc();

for(int i=0 ; i< list.size() ; ++i){

Kc kc = list.get(i);

//把数据放到表格中

row = sheet.createRow(i+1);

cell = row.createCell((short)0);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue(kc.getProno());

//

cell = row.createCell((short)1);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue(kc.getProname());//设置表格序号

cell = row.createCell((short)2);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue(kc.getProprice());

cell = row.createCell((short)3);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue(kc.getSalechannel());

cell = row.createCell((short)4);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue(kc.getProquantity());

}

//根据输出流,输出到文件中

File file = new File("kc.xls");

try {

OutputStream os = new FileOutputStream(file);

//输出写入到文件中

wb.write(os);

//关闭输出流

os.close();

} catch (Exception e) {

e.printStackTrace();

}

InputStream is = null;

try {

is = new FileInputStream(file);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

return is;

}

KcService.java

public InputStream getInputStream();

kcInfo.jsp

function funExcel(){

location.href=‘generateExcel.action‘;

};

<input width="100" type = "button"  value="生成excel" onClick="funExcel();"/>

<!--<s:a href="generateExcel.action">生成excel</s:a>-->

在页面上显示:

另外,我还增加了界面的背景图,就是在WebRoot中新建images,添加自己喜欢的图片,然后在jsp中添加一句代码 <body background="images/2.jpg">,就会出来自己想要的界面。

时间: 2024-10-06 16:41:36

软工实践心得(3)的相关文章

软工实践心得(1)

这篇心得记录了在小学期开始的三天内,自己所遇到的问题.解决方法以及最后的结果,在一样的代码底下,是大家各种不同的问题,代码书写问题.格式问题.理解问题等.对于myeclipse,一定要很仔细地完成各项任务,不然一个很小的问题,在运行中也会出现很大的问题. 1.第一天,主要装了myeclipse软件,我在G盘新建了一个名叫软工实践的文件夹,并把安装包放在这个文件夹内,安装其中的myeclise软件到D盘中的软工实践中.安装过后,运行的时候,一直出现一个错误: An error has occurr

调研《构建之法》指导下的全国高校的历届软工实践作品、全国互联网+竞赛、物联网竞赛等各类全国性大学生信息化相关的竞赛平台的历届作品及其看法

1,豌豆荚一览 作品内容:主要是一款聚合阅读类作品,他收录了500+应用的内容,可以在一个应用里面,看完自己感兴趣的应用的最近更新的内容,更通俗的讲就是用一个应用代替其他阅读类的应用,你可以在豌豆荚一览中看到其他应用最新更新内容,比如可以看知乎日报,开眼,一个等等之类的..... 作品源于的平台:豌豆荚设计奖里的作品,链接:http://sspai.com/30278 作品的优势:我们手机里面有很多的应用,每天都要在这些应用花费很多时间,其中有一些可能下载下来都不会打开几次,但是删掉又可惜的,于

软工实践之团队项目

我们的队名: Clean Code 031302511 林培兴 031302623 张衍坤 031302223 翁翰帅 031302536 苏丽玲 031302505 黄晓辉(组长) 团队项目描述: 校园通 团队成员介绍:    林培兴:我和组长是结对项目中的队友,在结对项目中,我们很好地合作分工,结对作业也取得不错的成绩.我有一定的Java基础,软工实践以来,也开始在努力学习安卓,在安卓编程方面有一定的进步.在我们的队伍中,我的定位主要是编程方面,负责我们项目的一部分模块的编程任务. 张衍坤:

第一次软工实践体会

不知不觉,软工实践小学期已经进行了三天,一开始,老师就明确了我们最终要做出什么:一个客户信息维护软件 首先,我们需要安装编写软件的环境:my eclipse Java enterprise 要说明的是my eclipse和之前我们学习java语言所用的eclipse稍有出入MyEclipse企业级工作平台(My Eclipse Enterprise Workbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和J2EE的开发.发布,以及应用程序服务器的整合方面极

往届软工实践作品评述

描述 作品的内容:作品源于的平台或链接:你觉得的作品的优势和不足:你觉得入选你心目中最佳前三的理由:经过调研后,你的感受和对自己团队项目的期待. 作品一 作品的内容: Phylab-Web 官方描述: 支持通过选择物理实验序号进入相应物理实验预习报告页面. 个人理解: 一个制作物理实验预习报告的页面. 作品源连接: https://github.com/buaase/Phylab-Web/blob/master/docs/User-Interface.md 优势: 贴近大学生的实际需要,并且制作

该死的软工实践

这学期给我最大的感觉是比之前的每学期过得都快,可能是比较忙吧.还记得刚开始的时候,栋哥说可以退选实验的时候,有人和我说:”好像软工实践很麻烦的样子,要不我们退了吧“.其实,我也有打过退堂鼓,以为自己学也可以做点东西,但是我还是抱着这样的想法”找个大腿抱,水一水吧,毕竟过了这学期,又可以少修几学分了“,然后就没有去退选了.接下来就是开始这软工实践的日子.该开始总是想得很美好,以为这学期结束会有一个产品,上面写着made by ***,到最后还是生出了一个比较low的东西,那是第一次真正实践的东西,

软工实践总结作业

忽然间,说结束就结束了. 明明是一直以来觉得头疼无比.时间占用巨大的这门课程,在结束的时候,却没有想象中的轻松,反而有一丝失落. 1.课程总结: 翻开刚刚开课时写下的目标,字里行间读出的,半是憧憬,半是迷茫.计划中要做的,有一些没有完成: 原打算学习java,最后却学习了一些php和mysql: 想要学会更好的管理时间,熬夜的次数好像却更加频繁: 原以为可以初步成长为一个合格的pm,但是回头看看自己做的好像也不怎么样.. .当然,也有不少的收获: 学会了一些软件的使用,例如原型开发软件Axure

【讨论帖】关于大学软工实践课程的教学模式讨论

背景介绍:某大学一门大三软工实践课,学生平时的时间较紧,所有科目一周总的学时通常在30学时以上.课程的主线主要以设计一个app或者实际应用系统的方式来进行,并且只在课后时间进行(上课时间要另外介绍各种工具比如android studio或者用例图工具.原型开发工具.单元测试工具等):课程中助教要求以博客的形式来进行贯穿,即平时的每次的项目安排都要以博客的形式发布,征得助教同意,公布发布课程项目的博客的地址http://www.cnblogs.com/easteast/,里面有每次作业的具体要求等

软工实践第一次作业-黄紫仪

软工实践第一次作业 前言:emmmm之前因为没太注意,想着计算机专业怎么会有软工实践.所以之前一直都没去管.等到开学才发现突然翻车.QAQ现在赶紧先来补交一下. (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 你认为过去两年中接触到的课程是否符合你对计算机专业的期待,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?   说到选择计算机,emmmm,某种意义上来说是打RPG游戏打出来的想法,因为很喜欢这类的游戏,所以也想去试着写一个属于自己的这种