`
zisefeiniao
  • 浏览: 176838 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

Struts前的最后一个小的模块

阅读更多
  项目的开发分两个阶段,今天是第一个阶段的最后一天,明天开始要学习Struts和AJAX了,感觉好象很难一样,慢慢来,可以学会,要相信自己.





计划内任务

任务编号
任务名称
最晚结束日期
工作量
任务完成标准
完成状态

1
修改区域删除部分
2009/05/04
2009/05/04
被企业表[company]表外键引用的区域信息不可以删除,系统给出提示“无法删除区域 XXX ,该数据已被引用!”。
Y

2
企业列表
2009/05/04
2009/05/04
在系统管理页,点击 企业 ,从企业表中查询出全部数据显示到列表页中,并添加分页,在右上方添加“新建企业客户”按钮。
Y

3
新增企业
2009/05/04
2009/05/04
在企业列表界面中点击“新建企业客户”按钮,系统转到新增企业界面,界面中显示如下字段:

企业名称: (非空验证,唯一性验证)

联系人: (非空验证)

联系方式: (非空验证)

企业地址: (非空验证)

信用级别: (非空验证,数字类型验证)

信用额度: (非空验证,数字类型验证)

所在区域:(下拉列表,显示系统的区域元数据)

用户在新增企业界面上点击“确定”按钮,系统将企业信息保存到数据库中。并返回企业列表页面,系统提示“新增成功!”。
Y

4
修改企业
2009/05/04
2009/05/04
区域列表界面中点击“修改”按钮,系统转到修改区域界面,界面中显示此企业用户的相应信息,更新数据后,用户在修改区域界面上点击“更新”按钮,系统将修改后的企业信息保存到数据库中。并返回企业列表页面,系统提示“修改成功!”。
Y

5
删除企业
2009/05/04
2009/05/04
用户在企业列表界面中点击“删除”按钮,系统提示“确认要删除该企业吗?”,用户确认后,删除用户所选数据,删除所选数据后,刷新企业列表页,并提示“删除成功!”,被TASK表外键引用的企业信息不可以删除,系统给出提示“无法删除, 该数据已被引用!”。
P

6
查看企业
2009/05/04
2009/05/04
在企业列表界面中点击“查看”按钮,系统转到企业详细信息界面,界面中显示相应信息。用户在企业详细信息界面上点击“返回列表”按钮,系统将返回企业列表页面。
Y

7
服务项目列表
2009/05/04
2009/05/05
在系统管理页面中,点击项目按钮,查询出全部项目信息,列表显示于引页面中,并添加分页,右上角添加“新建任务项目”按钮。
Y

8
新增服务项目
2009/05/04
2009/05/05
在服务项目列表界面中点击“新增”按钮,系统转到新增服务项目界面,界面中显示如下字段:

项目名称(非空验证,唯一性验证)

处理费用(非空验证,数字类型验证)

处理时间(非空验证,数字类型验证)

用户在新增服务项目界面上点击“确定”按钮,系统将服务项目信息保存到数据库中。并返回服务项目列表页面,系统提示“新增成功!”。
Y

9
修改服务项目
2009/05/04
2009/05/05
在服务项目列表界面中点击“修改”按钮,系统转到修改界面,界面中显示此任务的详细信息于相应位置,用户在修改界面上点击“更新”按钮,系统将修改后的服务项目信息保存到数据库中。并返回服务项目列表页面,系统提示“修改成功!”。
Y

10
删除服务项目
2009/05/04
2009/05/05
用户在服务项目列表界面中点击“删除”按钮,系统提示“确认要删除该项目吗?”,用户确认后,删除用户所选服务项目,删除所选数据后,刷新服务项目列表页,并提示“删除成功!”,被任务表[task]外键引用的服务项目信息不可以删除,系统给出提示“无法删除XXX ,该数据已被引用!”。
Y

11
查看服务项目
2009/05/04
2009/05/05
在服务项目列表界面中点击“查看”按钮,系统转到项目详细信息界面,根据此项目id查询出详细信息显示到页面中。用户在详细信息界面上点击“返回列表”按钮,系统将返回服务项目列表页面。
Y


 
 
 
 
 


 
 
 
 
 

临时任务


 
 
 
 
 


 
 
 
 
 






4.  遇到的问题及解决方式(必填)
________________________________________
4.1.1. 关于客户端跳转传递参数的中文乱码问题
问题:
添加企业信息
1、页面代码:
<tr>
<td width="80" align="left" class="text_14_gray">企业名称:</td>
<td width="200" align="left" class="text_14_gray"><input type="text" name="title" onchange="checkTitle(this.value);" value="${requestScope.title }">
<span id="checkTitle" style="color:#6600FF">${requestScope.useableness}</span>
</td>
</tr>
当输入企业名称后,进行名称唯一性检查(通过JavaScript跳转)
function checkTitle(title){
      var type="insert";
      window.location = "<%=request.getContextPath()%>/logincheck/admin/CompanyServlet?operateType=checktitle&title="+title +"&type="+type ;
     }

这样就涉及到传递输入的企业名称title,如果是中文,接收的时候会出现乱码

2、CompanyServlet代码
if("checktitle".equals(operateType)){
   String type=request.getParameter("type");

  String title=request.getParameter("title");

String title=new String(request.getParameter("title").getBytes("ISO8859-1"));
  
   Company com=null;
   try {
    com = DAOFactory.getICompanyDAOInstance().findByCompanyTitle(title);
   } catch (Exception e) {
    e.printStackTrace();
   }
   String useableness="该企业信息已存在!";
   if(com==null){   
    useableness="该企业名称可用!";
   }
   request.setAttribute("useableness", useableness);
   if("insert".equals(type)){
    path="/logincheck/admin/CompanyServlet?operateType=insertpre&useableness="+useableness+"&title="+title;
   }else if("update".equals(type)){
    int id=Integer.parseInt(request.getParameter("id"));
    path="/logincheck/admin/CompanyServlet?operateType=updatepre&useableness="+useableness+"&title="+title+"&id="+id;
   }
  }else if("insertpre".equals(operateType)){
   Map<Integer,String> allArea=null;
   try {
    allArea=DAOFactory.getIAreaDAOInstance().getAllArea();
   } catch (Exception e) {
    e.printStackTrace();
   }
  
   String useableness=request.getParameter("useableness");
   request.setAttribute("useableness", useableness);
  
   String title=request.getParameter("title");
   request.setAttribute("title", title);
  
   request.setAttribute("allArea", allArea);
   path="/logincheck/admin/addcompany.jsp";
  
  }else if("insert".equals(operateType)){
   String title=request.getParameter("title");
   String linkman=request.getParameter("linkman");
   String tel=request.getParameter("tel"); 
   String address=request.getParameter("address"); 
   Double creditsLimit=Double.parseDouble(request.getParameter("creditsLimit"));
  
   int areaid=Integer.parseInt(request.getParameter("areaid"));
   String atitle=null;
   try {
    atitle=DAOFactory.getIAreaDAOInstance().getAreaTitleByAreaId(areaid);
   } catch (Exception e) {
    e.printStackTrace();
   }
     
   Company com=new Company();
   com.setTitle(title);
   com.setAreaid(areaid);
   com.setAtitle(atitle);
   com.setLinkman(linkman);
   com.setTel(tel);
   com.setAddress(address);
   com.setCreditsLimit(creditsLimit);
  
   boolean flag=false;
   try {
    flag=DAOFactory.getICompanyDAOInstance().doInsert(com);
   } catch (Exception e) {
    e.printStackTrace();
   }
  
   if(flag){
    info="添加成功!!";
   }else{
    info="添加失败!!";
   }
   request.setAttribute("info", info);
  
   forward="logincheck/admin/CompanyServlet?operateType=companymanage";
   request.setAttribute("forward", forward);
  
   path="/logincheck/message.jsp"; 
  
  }


解决方法:修改CompanyServlet代码
  if("checktitle".equals(operateType)){
   String type=request.getParameter("type");

  //String title=request.getParameter("title");
//这样中文会乱码

String title=new String(request.getParameter("title").getBytes("ISO8859-1"));
  
   Company com=null;
   try {
    com = DAOFactory.getICompanyDAOInstance().findByCompanyTitle(title);
   } catch (Exception e) {
    e.printStackTrace();
   }
   String useableness="该企业信息已存在!";
   if(com==null){   
    useableness="该企业名称可用!";
   }
   request.setAttribute("useableness", useableness);
   if("insert".equals(type)){
    path="/logincheck/admin/CompanyServlet?operateType=insertpre&useableness="+useableness+"&title="+title;
   }else if("update".equals(type)){
    int id=Integer.parseInt(request.getParameter("id"));
    path="/logincheck/admin/CompanyServlet?operateType=updatepre&useableness="+useableness+"&title="+title+"&id="+id;
   }
  }else if("insertpre".equals(operateType)){
   Map<Integer,String> allArea=null;
   try {
    allArea=DAOFactory.getIAreaDAOInstance().getAllArea();
   } catch (Exception e) {
    e.printStackTrace();
   }
  
   String useableness=request.getParameter("useableness");
   request.setAttribute("useableness", useableness);
//此处属于服务器跳转过来的,不用特殊处理,特殊处理了反而出现???
//   if(request.getParameter("useableness")!=null){
//    request.setAttribute("useableness", new String(request.getParameter("useableness").getBytes("ISO8859-1")));
//   }
  
   String title=request.getParameter("title");
   request.setAttribute("title", title);
//此处属于服务器跳转过来的,不用特殊处理???
//   if(request.getParameter("title")!=null){
//    request.setAttribute("title", new String(request.getParameter("title").getBytes("ISO8859-1")));
//   }
  
   request.setAttribute("allArea", allArea);
   path="/logincheck/admin/addcompany.jsp";
  
  }else if("insert".equals(operateType)){
   String title=request.getParameter("title");
   String linkman=request.getParameter("linkman");
   String tel=request.getParameter("tel"); 
   String address=request.getParameter("address"); 
   Double creditsLimit=Double.parseDouble(request.getParameter("creditsLimit"));
  
   int areaid=Integer.parseInt(request.getParameter("areaid"));
   String atitle=null;
   try {
    atitle=DAOFactory.getIAreaDAOInstance().getAreaTitleByAreaId(areaid);
   } catch (Exception e) {
    e.printStackTrace();
   }
     
   Company com=new Company();
   com.setTitle(title);
   com.setAreaid(areaid);
   com.setAtitle(atitle);
   com.setLinkman(linkman);
   com.setTel(tel);
   com.setAddress(address);
   com.setCreditsLimit(creditsLimit);
  
   boolean flag=false;
   try {
    flag=DAOFactory.getICompanyDAOInstance().doInsert(com);
   } catch (Exception e) {
    e.printStackTrace();
   }
  
   if(flag){
    info="添加成功!!";
   }else{
    info="添加失败!!";
   }
   request.setAttribute("info", info);
  
   forward="logincheck/admin/CompanyServlet?operateType=companymanage";
   request.setAttribute("forward", forward);
  
   path="/logincheck/message.jsp"; 
  
  }

修改的企业信息页面代码中,还需要注意,当添加了检查企业名称是否唯一的功能后,需要修改代码
    <tr>
      <td width="80" align="left" class="text_14_gray">企业名称:</td>
      <td width="200" align="left" class="text_14_gray">
      <%
      String title=(String)request.getAttribute("title");
      if(title!=null){
      %>
      <input type="text" name="title" onchange="checkTitle(this.value);" value="${requestScope.title }">
      <%
      }else{
      %>
      <input type="text" name="title" onchange="checkTitle(this.value);" value="${requestScope.company.title }">
      <%
      }
       %>
      <span id="checkTitle" style="color:#6600FF">${requestScope.useableness}</span>
      </td>
    </tr>

否则修改后的名称返回不到页面中,一返回就被原来的数据覆盖



分享到:
评论

相关推荐

    jsp+mysql+struts实现的一个财务管理系统

    【标题】"jsp+mysql+struts实现的一个财务管理系统"涉及了三个主要技术:Struts、MySQL和JSP,这些都是Web开发中常见的组件。本文将详细介绍这三个技术在财务管理系统中的应用及其相互配合。 **1. Struts框架** ...

    struts登陆上传模块

    最后,`Struts2Test2`可能是一个测试项目或者包含测试代码的目录。在实际开发中,你可能会编写单元测试或集成测试来确保登录和上传功能的正确性。这可能包括使用JUnit、Mockito等工具来模拟HTTP请求和数据库交互,...

    struts1+spring+hibernate+freemarker一个小例子

    在这个“struts1+spring+hibernate+freemarker一个小例子”中,我们将探讨这四个组件如何协同工作,以及它们各自的核心功能。 首先,Struts1是MVC(模型-视图-控制器)设计模式的一个实现,主要用于处理HTTP请求和...

    struts hibernate struts+hibernate 结合做的一个项目

    Struts是一个基于MVC(Model-View-Controller)设计模式的框架,主要负责处理用户请求和控制业务流程,而Hibernate则是一个对象关系映射(ORM)框架,用于简化数据库操作。 **Struts框架详解:** Struts框架是...

    struts2小栗子

    本教程将通过一个入门级的小例子来帮助新手理解并搭建Struts2框架,让你快速上手这个流行的开源框架。 首先,你需要了解Struts2的核心概念。Struts2框架基于拦截器模型,通过一系列拦截器链来处理HTTP请求。这些...

    Struts模块化之分页组件

    Struts框架是Java Web开发中的一个经典框架,它极大地简化了MVC(Model-View-Controller)模式的应用。在大型项目中,数据的分页显示是必不可少的功能,它能够提高用户体验,避免一次性加载大量数据导致的性能问题。...

    一个struts+Ajax实现的抽奖程序

    6. **ExamManager**:这个文件名可能是项目中的一个管理类或者模块,可能负责整个抽奖流程的管理,包括用户参与资格检查、抽奖逻辑实现、结果保存等。 7. **配置文件**:Struts框架依赖于struts-config.xml配置文件...

    Struts课程模块测试.doc

    在本“Struts课程模块测试”中,学生需要利用MyEclipse开发工具来实现一个基于Struts的Web项目,其核心功能是判断一个字符串是否为另一个字符串的前缀。 首先,创建一个新的Web项目“Prefix”,这是开发的基础。在...

    struts2 小Demo

    这个"struts2 小Demo"是一个基础的学习实践,旨在帮助初学者理解Struts2的核心概念和工作原理。在这个小实例中,我们将探讨如何通过Struts2实现一个简单的用户添加功能。 首先,Struts2的基础架构基于Model-View-...

    简单易懂Struts核心讲解

    Struts是Java Web开发中的一个开源框架,由Apache软件基金会维护。它主要基于Model-View-Controller(MVC)设计模式,旨在简化企业级应用程序的开发。本篇将深入讲解Struts的核心流程、标签库、验证框架以及其特性。...

    struts2和struts1 API及使用指南 chm

    Struts是Apache软件基金会下的一个开源项目,主要提供MVC(Model-View-Controller)架构模式,用于构建Java EE(Enterprise Edition)Web应用程序。Struts2是Struts1的升级版,它在Struts1的基础上引入了许多改进...

    Struts 2.3.20升级日志

    最后,Struts 2.3.20 引入了一个名为 `org/apache/struts2/views/TagLibrary` 的新接口,虽然被标记为 @Deprecated,但这是一个过渡性的改变,可能是为了未来的版本改进。 在升级过程中,需要注意替换相应的 JAR 包...

    Struts2+Json+Android简单实现

    在本示例中,“StrutsJson”可能是服务端的一个模块,它利用Struts2的JSON结果类型来发送和接收JSON格式的数据。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    Struts1.2中文学习手册

    Tiles则是Struts1.2的一个扩展,它允许开发者创建可重用的页面组件,实现了页面的模块化设计。 接着,手册会详细阐述配置文件struts-config.xml的重要性。这是Struts1.2应用的核心配置文件,定义了Action映射、Form...

    Struts2课堂学习总结

    Struts2是一个基于MVC设计模式的Java web框架,它极大地简化了企业级应用的开发。以下是关于Struts2的一些核心知识点的详细说明: 1. **环境搭建**:要搭建Struts2的开发环境,首先需要配置Tomcat服务器和JDK。接着...

    struts2教程.rar

    Struts2教程是一个非常有价值的资源,它可以帮助我们深入了解和学习这个强大的MVC框架。Struts2作为Apache软件基金会的一个项目,是Java Web开发中的一个重要工具,尤其在企业级应用中广泛应用。相较于其前身Struts1...

    Struts2简单实例

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、模块化和高度控制的MVC(模型-视图-控制器)结构的应用程序。它继承了Struts1的优点,并结合了其他框架如WebWork的核心特性,提供了更高效、灵活的...

    java struts

    它根据`struts-config.xml`的配置将请求转发给相应的Action,Action处理请求后返回结果,最后由Struts框架决定如何显示结果,这通常涉及渲染一个JSP页面。 5. **生命周期**:当用户发起请求,Struts框架会创建...

    一个非常基础的Struts 例子下载

    最后,`mod1`可能表示一个模块,Struts支持多模块应用,每个模块可以有自己的Action、JSP和配置文件。`mod1`下可能包含类似`WEB-INF`目录结构的子目录,用于存放该模块的特定配置和资源。 总结一下,这个基础的...

Global site tag (gtag.js) - Google Analytics