




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.2项目前期项目前期;一般是由客户经理从客户那边了解到有关该项目的招标信息,然后开发公司再组织竞标;编写标书和详细的项目建设方案。这个阶段一般由门和开发部门的管理层参与。建设方案由部门经理或者项目经理协助完成。项目建设方案中一般包括初步的系统功能、模块设计、软硬件设备、开发组介绍等。提供这些信息给客户后他们再评估相应开发公司是否有承建系统能力。1.3需求分析当项目中标后,公司的客户经理、项目经理再到客户环境进行详细的需求调研,完成调研后将初步的调研结果转化成正式的需求文档。需求文档是所有后续流程的基础和非常重要的文档,开发和测试要按照需求来开发测试。详细需求见协同平台-纳税服务需求规格说明书
2、.docx1.4设计在这个阶段主要是需求进行详细的开发前的分析和对具体模块的设计。在设计过程中可能包括到的原型设计的完善、界面美工设计切图、数据库设计(概念、物理模型)等;最终需要出详细设计说明书。见协同平台-纳税服务详细设计说明书.docx1.5制定开发计划在需求和详细设计都已经确定的情况下;项目需要根据开发的时间和任务数来制定开发计划;计划中需要描述所有的开发阶段,从需求阶段到部署上线期间所有要做的任务,每个任务对应具体的开始时间、结束时间,前置任务,工作时长,名称。后续的开发都根据该计划进行在每周开周例会上确认开发进度是否和计划保持一致,如果不一致则需要好相应方案;保证能如期提交系统给到
3、客户。1.6开发根据开发计划,项目经理将组织开发团队完成具体的开发任务,每周向公司部门、客户主管汇报项目进度。对应具体的开发则熟悉、理解需求,明白设计文档;按照计划中时间点开发功能,提交代码。2框架整合2.1新建数据库及 web 项目2.1.1创建 itcastTax 数据库- 创建数据库CREATE DATABASE itcastTax DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;2.1.2新建 web 项目新建工作空间指定项目编码(或工作空间编码)为 utf-8,再建 web project,配置 buildpath引入应用服务器
4、tomcat 的包:选择对应配置的 tomcat 版本即可。如若对应的MyEclipse 版本没有上述的“MyEclipse Server Library”;可以选择“My Eclipse Library”然后选择 ee 的包。需要连接 mysql 数据库,再添加 mysql 驱动包。2.2框架整合2.2.1添加 struts2 的 jar 包和配置文件1、添加 struts2 jar 包到web-inf/lib 目录下;2、添加 struts.xml 到 src 目录下。可在“struts-2.xappsstruts2-blankWEB-INFclasses”下复制。在 struts.xml
5、 中添加几个常用属性:3、配置 web.xml:添加 struts2 过滤器:<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><!- 禁用动态方法-><constant name="struts.enable.DynamicMethodInvocat
6、ion" value="false" /><!- 配置成开发模式 -><constant name="struts.devMode" value="true" /><!- 配置拓展名为 action -><constant name="struts.action.extention" value="action" /><!- 把主题配置成 simple -><constant name="struts.u
7、i.theme" value="simple" />2.2.2添加 hibernate 的 jar 包和配置文件添加 hibernate jar 包到 web-inf/lib 目录下;至于 hibernate.cfg.xml 文件,因项目使用 spring 来整合管理实体和数据库的连接等 hibernate原本的配置,所以这个配置文件不再需要。2.2.3添加 spring 的 jar 包和配置文件添加 spring jar 包到 web-inf/lib 目录下添加 spring 配置文件 applicationContext.xml 到 src 目录下;在
8、web.xml 中spring器,启动 spring 容器:2.3整合测试项目2.3.1整合 struts 和 spring预期:如果可以在 action 中能够正确调用 service 里面的方法执行并返回到一个页面中;那么我们认定 struts 和 spring 的整合是的。编写 JUnit 测试类,测试 spring 加载是否正确:<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
9、;<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><filter-mapping><filter-name>struts2</filter-name><url-pattern>*.action</url-pattern></filter-
10、mapping>编写TestService 接口和实现类TestServiceImpl在 applicationContext.xml 中添加 bean 扫描配置信息;这边使用导入配置文件的方式配置。首先在 cn.itcast.test.conf 中建立 test-spring.xml(可以applicationContext.xml 内容)里面的配置就是普通的 bean 扫描,只是将扫描范围缩小了。<!- service -><context:component-scan base-package="cn.itcast.test.service.impl&q
11、uot; />将 test-spring.xml 导入到 applicationContext.xml 中如下:编写 TestAction 类在 test 的 conf 文件夹下新建 test-struts.xml 中配置 TestAction:将 test-struts.xml 导入到 struts.xml 文件中。在 webRoot 目录下新建 test/test.jsp在浏览器中输入: 的打印信息。查看是否能输入 service 中2.3.2整合 hibernate 和 spring在 applicationContext.xml 中配置如下原本在 hibernate.cfg.xm
12、l 中需要配置的信息,在 spring中配置后 hibernate.cfg.xml 可删除。1、 配置 c3p0 数据库连接源:<!- 导入外部的 properties 配置文件 -><context:property-placeholder location="classpath:perties" /><!- 配置 c3p0 数据源 -><include file="cn/itcast/test/conf/test-struts.xml"/><struts><package
13、name="test" namespace="/" extends="struts-default"><action name="test_*" class="cn.itcast.test.action.TestAction" method="1"><result name="success">/WEB-INF/jsp/test/test.jsp</result></action></packag
14、e></struts><import resource="classpath:cn/itcast/*/conf/*-spring.xml" />2、 perties3、 配置 sessionFactory,并将 dataSource 指向 c3p0 创建的 dataSource:<bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><propert
15、y name="dataSource" ref="dataSource"></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop><prop key="hibernate.show_sql">true</prop>
16、;<prop key="hibernate.hbm2ddl.auto">update</prop><prop key="javax.persistence.validation.mode">none</prop></props></property><property name="mappingLocations"><list><value>classpath:cn/itcast/*/entity/*.hbm.xml</v
17、alue><value>classpath:cn/itcast/test/entity/*.hbm.xml</value>jdbcUrl=jdbc:mysql:/localhost:3306/itcastTax?useUnicode=true&characterEncoding=utf8 driverClass=com.mysql.jdbc.Driveruser=root password=rootinitialPoolSize=10 maxPoolSize=30<beanid="dataSource"class="co
18、m.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="jdbcUrl" value="$jdbcUrl"></property><property name="driverClass" value="$driverClass"></property><property name="user" value
19、="$user"></property><property name="password" value="$password"></property><!-初始化时获取三个连接,取值应在 minPoolSize 与maxPoolSize 之间。Default: 3 -><property name="initialPoolSize" value="$initialPoolSize"></property><!-连
20、接池中保留的最小连接数。Default: 3 -><property name="minPoolSize" value="3"></property><!-连接池中保留的最大连接数。Default: 15 -><property name="maxPoolSize" value="$maxPoolSize"></property><!-当连接池中的连接耗尽的时候 c3p0 一次同时获取的连接数。Default: 3 -><prope
21、rty name="acquireIncrement" value="3"></property><!-最大空闲时间,1800 秒内未使用则连接被丢弃,若为 0 则永不丢弃。Default: 0-><property name="maxIdleTime" value="1800"></property></bean>编写实体类和对应的文件.hbm.xml:文件的头部信息:<?xml version="1.0" encodin
22、g="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""">编写完实体文件后,用 JUnit 测试 hibernate 和 spring 的整合,在测试用例中启动 spring容器的时候将扫描类根据其创建数据库表,并在测试向表一条数据。测试 hibernate,添加一个</list></property></bean>2.3.3配置 spring 事务管理【注意
23、:上面的 pointcutexpression 表示execution(* cn.itcast.service.impl.*.*(.)】以 Service 结尾的 bean,或者可写成完善 TestService 接口和 TestServiceImpl;利用 service 中的操作来验证上面配置的事务管理是否生效。添加 dao 层代码并配置 dao 信息到 test-spring.xml 文件中;准备事务测试<!事务管理-><bean id="txManager"class="org.springframework.orm.hibernate4
24、.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!事务通知-><tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><tx:method name="find*" read-only=&qu
25、ot;true" /><tx:method name="get*" read-only="true" /><tx:method name="load*" read-only="true" /><tx:method name="list*" read-only="true" /><tx:method name="search*" read-only="true" /><
26、tx:method name="*" rollback-for="Throwable" /></tx:attributes></tx:advice><!配置需要进行事务的类 -><aop:config><aop:pointcut id="serviceOperation" expression="bean(*Service)" /><aop:advisor advice-ref="txAdvice" pointcut-ref
27、="serviceOperation" /></aop:config>测试方法Dao 中Service 中2.4文件分类1、 将配置文件归类到新建 config 文件夹;2、 源代码目录按照功能模块进行划分:cn.itcast.子系统.功能模块.*3、 Jsp 放置到 WEB-INF 目录下;4、 其它:2.5日志工具配置在台会报出日志 log4j 没有配置好配置文件的信息。引入 slf4j 的 jar 包和 log4j 的 jar 包及其配置文件,配置 perties 文件。测试:2.6编写基类 BaseDaoDAO 基类中配备增删改查
28、的操作。获取泛型类型:/ 使用反射得到 T 的真实类型ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); /获取当前 new 的对象的 泛型的父类 类型this.clazz = (Class<T>) pt.getActualTypeArguments()0; / 获取第一个类型参数的真实类型3用户管理3.1实现 CRUD 的步骤及用户实体文件1、 用户实体类及文件:Usre.java 和 User.hbm.xml2、 实现 UserDao、UserDaoImpl,直接继
29、承 BaseDao、BaseDaoImpl;3、 编写 UserService、UserService 类,里面包括 baseDao 中的基本方法;4、 UserAction 中要实现增删改查,需要 6 个方法;我们约定需要跳转到页面的方法以 UI 结尾,如果 addUI 则说明这是跳转到添加页面,需要对应一个 addUI.jsp。在删除、修改、添加完成后应该返回列表页面,这时为了避免重复提交返回使用重定向。配置 user-spring.xml ,并 将 其 导 入 到applicationContext.xml 中 ,然后在 applicatoinContext.xml 中 设 置 所 有
30、业 务 dao 的父类 dao ,为 HibernateDaoSupport 注入 sessionFactory。baseDao 中的 在 user-spring.xml 中的内容:3.2实现用户管理的 CRUD 方法及显示列表在 UserAction 中至少需要有的 6 个方法:listUI() - 返回到列表页面对应 listUI.jsp addUI() - 返回到添加页面对应 addUI.jsp add() - 重定向到 listUIedit() - 重定向到 listUIeditUI() - 返回到编辑页面对应 editUI.jspdelete() - 删除用户重定向到 listUI设
31、置完 action 后,配置 user-struts.xml 文件,里面对应各个方法对应的页面;最后将user-struts.xml 包含到 struts.xml 文件中。<!- 所有 dao 的 parent -><bean name="baseDao" abstract="true"><property name="sessionFactory" ref="sessionFactory"/></bean>接下来引入美工设计好的页面;将数据与页面结合展示。3.3完成
32、美工设计页面显示将美工设计好的页面到项目中:将 js、css、image、分别放置到 WebRoot 目录下;其它的 jsp 对应页面填充动态数据。完成后jsp对应大多数页面样式和 jquery 都是需要的,所以我们把公共样式和 jquery、struts信息抽出到一个 header.jsp 文件中,将此文件放入 common 公共文件目录。库等3.4批量删除在 用 户 列 表 listUI.jsp 中设置好复选框 <input type="checkbox" name="selectedRow"value='<s:property
33、value="id"/>'/> ,点击操作栏中的删除执行 js提交用户列表表单到后台 UserAction,在 action 中使用数组接收的用户 id,然后在对该数组进行遍历删除。3.5日期组件 wdatepicker导入 WdataPicker 文件包到项目的 js 文件夹下;在用户管理中的添加、编辑 jsp 页面对生日表单项引入日期组件:用法:回显时,注意设置好显示格式;可以如下设置:3.6头像上传在用户管理的添加、编辑页面中,可以上传用户的头像;页面中对头像字段的文本域。<input type="file" name=&
34、quot;headImg"/>type=file之后 UserAction 接收文件需要配置的 3 个基本属性变量:将头像文件保存在服务器的 upload/user 目录下,文件的名称以 uuid 重命名。(必须重命名:重名问题特殊字符在显示时的问题)<s:textfield id="birthday" name="user.birthday" readonly="true"onfocus="WdatePicker(skin:'whyGreen', el:'birthday
35、9;,dateFmt:'yyyy-MM-dd')"><s:paramname="value"><s:datename='user.birthday' format='yyyy-MM-dd' /></s:param></s:textfield><s:textfield id="birthday" name="user.birthday" readonly="true"onfocus="Wda
36、tePicker(skin:'whyGreen', el:'birthday',dateFmt:'yyyy-MM-dd')"/><script type="text/javascript" src="$basePathjs/datepicker/WdatePicker.js"></script>3.7批量导入、导出查阅POI 操作 excel.doc 先了解 POI,使用 POI 工具类导出用户数据到 excel 中。导出:在用户管理页面中点击“导出”,将所有用户导出
37、到 excel 中。在 userService 中将调用导出工具类 ExcelUtil 导出数据。导入:在用户管理页面中,上传包含用户列表的 excel 文档,然后点击“导入”将 excel 中的用户的用户表中,并显示在列表上。 UserAction 中接受导入文件 UserServiceImpl 中具体处理导入文件3.8表单校验在用户的新增、编辑中对帐号、进行非空校验和帐号的唯一性校验。需要注意的是在编辑页面中帐号的唯一性校验要排除当前编辑的帐号,不然将出现无法保存的情况。1、 在 jsp 页面中,分别进行两个时机的校验,是在编辑帐号的表单域时需要到服务器中校验是否已经存在输入的帐号;在提交
38、表单时再次进行校验,避免在填写表单时帐号已被使用的情况;2、 在 action 中,根据传入的帐号和用户 id 到用户表中查找用户,如果出现有任何该帐号已经被使用。说明3、 在 service、dao 中的代码分别如下:UserServiceImpl 中实现的方法:UserDaoImpl 中需要对传入的 id 进行实现的方法:4抽取 BaseAction在 action 中继承了 ActionSupport 和其它一些公共属性,如 selectedRow 等;可能以后还会产生公共的内容,所以应该把这些共有的抽取出来,放入到一个基本 action 中,我们命名为 BaseAction,让它去继承
39、 ActionSupport 和其它公共属性,其它的 action 只要继承它就可以了。5系统异常处理当在页面中了请求,请求被系统处理时出现错误时,如果没有特别处理在请求过程中出现的异常信息时,那么返回给用户的则是页面呈现给用户,可对这报错进行处理。的异常信息页面;为避免直接将这报错的5.1分层异常中的能出现相应错误。处理有分 3 个层,分别是 action、service 和 dao 层,每个层次都有可Action 层可能出现请求参数、返回结果有问题; Service 层则可能出现请求中要做的业务操作出现问题;出现了问题要根据实际情况是否会影响本次操作结果,action 中要根据异常信息进行
40、然后确定是否操作; dao 层也可能出现在操作数据库时出现错误;而此种错误一般都是致命的会影响操作结果。以此;在 3 个层次中至少要有两种类型的异常信息来标识。制定总的系统异常类:Action 层异常类:Service 层异常类:5.2异常处理5.2.1全局异常在struts 总配置文件(struts.xml)中配置一个包括 全局异常和全局结果的package,然后让其它所有的业务模块的 struts 配置文件(*-struts.xml)继承后便可处理由特定异常并处理。在总配置文件 struts.xml 中:抛出的在子业务模块中的*-sturts.xml 中继承总配置文件中的 package:
41、在具体的处理代码中抛出系统异常:如果在 action 中只抛出了 ActionException,那么非此异常出现时,如果在全局异常中配置了 java.lang.Exception 异常类的,同样可以捕获。5.2.2制定返回类型(StrutsResultSupport)在有特殊情况时;如果没有异常信息,但是有错误并且有错误信息等内容;此时也需要进行友好的错误处理的话,那么可以借助 StrutsResultSupport 返回结果类型来实现特定处理。此种需要继承 StrutsResultSupport ,然后可以在子类中获取本次请求的相关信息,再根据相关信息进行结果处理:在 struts.xml
42、 总配置文件中定义全局处理类型和全局处理结果:管理66.1与权限说明与权限的关系6.1.1系统中可以存在多个,每个可以自由的组合系统定义的权限集合。即和权限的与关系是多对多的关系。为了保存这种多对多关系,需要一个权限表来保存。权限的关系是一对多的关系;而权限与权限的关系也为一对多关系。6.1.2定义系统权限集将系统中需要使用到的权限先定义出来:粗粒度的分为各个子系统的以定义在常量文件中。权限;这些权限可6.2管理 CRUD实体类及文件6.2.1 Role/Role.hbml.xml RolePrivilege/RolePrivilegeId,RolePrivilege.hbm.xml6.2.2
43、dao、service 层主要操作方法dao 中主要方法:service 中主要方法:6.2.3action 中主要方法6.2.4配置文件配置 role-spring.xml 及 role-struts.xml,并将 role-struts.xml 加入到 struts.xml 总配置文件中。6.3用户说明一个用户可以对应多个,一个可以对应多个用户。用户与的关系也是多对多的;并且用户不直接关关系。在页面中应该体现出在添加、编辑用户时可以选择多个统的权限,用户的权限都是通过来关联实现。6.4改造用户管理6.4.1用户表实体类、文件的改造新增“用户”实体及文件:6.4.2用户保存、更新、删除方法改
44、造1、 UserAction:在跳转到 addUI 时应该初始化系统的所有列表提供添加页面进行选择:更新方法:在 UserDaoImpl 中:UserServiceImpl 类中:2、 在 jsp 页面中将选择改造为多选:7权限验证7.1系统首页1、 编写首页 cn.itcast.home.HomeAction类的内容就一个跳转到首页的方法:public class HomeAction extends ActionSupport /系统首页2、 配置 home-struts.xml 文件将 home-struts.xml 加入到 struts.xml 中将 home.jsp 加入到项目的 W
45、EB-INF/jsp/home 目录下,修改进入纳税服务首页的。7.2纳税服务首页新增纳税服务的首页对应的 cn.itcast.home.action.HomeAction,里面就只包含 3 个方法,分别转向 frame.jsp、top.jsp、left.jsp 的方法:配置 home-struts.xml 并包含到 struts.xml 中。之后引入 welcome.jsp、bg.jsp 到 common 目录下,frame.jsp、top.jsp、left.jsp 三个 jsp 文件到 WEB-INF/jsp/目录下并修改这 3 个页面中的和相关信息。<struts><p
46、ackage name="home" namespace="/sys" extends="struts-default"><action name="home_*" class="cn.itcast.home.action.HomeAction" method="1"><result name="home">/WEB-INF/jsp/home/home.jsp</result><result name=&qu
47、ot;1">/WEB-INF/jsp/home/1.jsp</result></action></package></struts>public String execute() return "home"7.3登录与注销7.3.1登录与注销编写 LoginAction在这个 action 中;主要处理登录和注销操作;方法应该包括:1、 跳转到登录页;toLoginUI()loginUI2、 当没限时,跳转到没限的提示页面;toNoPermissionUI()noPermissionUI3、 登录
48、方法;录。需要具体的 userService,userDao 方法。userDaoImpl 类中具体的实现方法为:4、 注销登录;logout()tologinUILoginAction 类(代码片段):配置 login-struts.xml 文件并引入 struts.xml 中。项目首页重定向到登录页改写 WebRoot 下面的 index.jsp,在里面没有登录情况下直接重定向到登录页;如已经登录则跳转到系统首页。7.4权限验证说明在系统中, 需要验证用户的登录,只有登录后才能系统的。 纳税服务子系统只有拥有“纳税服务”权限的才可以操作。对于上述 2 种的权限验证,在此采用过
49、滤器进行处理。编写 LoginFilter 过滤器,在过滤器中对用户的 url 进行登录验证,在登录的前提下再次验证如果的是纳税服务命名空间下的则利用权限验证接口 PermissionCheck 校验用户是否有“纳税服务”。7.4.1登录过滤器编写过滤器 cn.itcast.core.filter.LoginFilter 类;实现 javax.servlet.Filter 接口:<%pagelanguage="java"import="java.util.*,cn.itcast.core.constant.*" pageEncoding="
50、;utf-8"%><%if(session.getAttribute(Constants.USER) != null)/已登录,跳转到系统首页response.sendRedirect(request.getContextPath() + "/sys/home.action"); else /未登录,跳转到登录页面response.sendRedirect(request.getContextPath() + "/sys/login_toLoginUI.action");%>在 web.xml 中配置该过滤器:7.4.2鉴定权
51、限在过滤器中加入权限的鉴定;当用户登录的情况下如果特定模块需要验证用户是否有特定权限。由于权限常用于在用户使用系统时权限的鉴定,所以可以在用户实体中加入一个用户权限的集合来保存用户的集合。新增用户类中列表属性 userRoles 用于存放用户的列表。PermissionCheck/PermissionCheckImpl<filter><filter-name>loginFilter</filter-name><filter-class>cn.itcast.core.filter.LoginFilter</filter-class>&l
52、t;/filter><filter-mapping><filter-name>loginFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping>在 applicationContext.xml 中需要限时可以注入其它 Service。PermissionCheck Bean,主要是为了方便在使用鉴定权7.5解决细节-登录页面嵌套在纳税服务的首页中使用了 frameset,当前用户的系统登录信息失效后;如果再点击左边的菜单,那么在右
53、边的显示登录页面,而正确的应该是整个页面返回到登录页。解决这个问题:应该在跳转到登录页面中使用 js,是否当前页面在框架内,即当前页面的窗口是否是顶级窗口,如果是子窗口的话;可以直接刷新父窗口的地址则会自动地整个页面跳转为登录页。8信息发布管理8.1实现信息发布管理 CRUD8.1.1编写信息实体文件编写信息实体类 Info 及其文件 Info.hbm.xml设置“信息分类”、“状态”的常量信息,其中信息分类需要设置一个静态 MAP 包括信息分类用于在页面的显示。8.1.2实现信息发布管理1、 编写 InfoDao/InfoDaoInfo2、 编写 InfoService/InfoServic
54、eImpl3、 编写 InfoAction4、 编写 info-struts.xml 和 info-spring.xml,并将 info-struts.xml 引入struts.xml5、 引入美工页面并修改6、 实现页面中添加、编辑、删除8.2富文本编辑器 Ueditor地址:ueditor1.4.3 utf8-Jsp 版本。完整 demo 可参考文件中的index.html导入 ueditor 到项目中;将 ueditor 导入到项目的 js 目录下。导入 ueditor/jsp/lib 目录中的“commons-codec-1.9.jar”、“json.jar”、“ueditor-1.1
55、.1.jar”这几个 jar 包到项目的 web-inf/lib目录中。配置 ueditor 中图片上传前缀和路径;打开“ueditor/jsp/config.json”<script type="text/javascript">if(window != window.parent)window.parent.location.reload(true);</script>注意:修改web.xml 中 struts 过滤器的过滤规则,将/*改为 *.action 。避免引起 struts 过滤器把 ueditor 的图片等上传 jsp 给而导致上传图
56、片等失败。引入 ueditor 到 jsp 页面,在 ueditor 的 ueditor.config.js 文件中,要求我们需要配置好 ueditor的根目录地址;在我们页面时也需要在 js 中制定 UEDITOR_HOME_URL 的路径。运用到页面时我们只需要将一个 textarea 的表单项的 id 和 euditor 实例化时的 id 一致即可。将下面内容引入到 jsp 页面中:8.3异步信息发布在 InfoAction 中新增方法 publicInfo,主要用于修改信息的状态。<s:textarea id="editor" name="info.content" cssStyle="width:90%;height:160px;" /><scripttype="text/javascript"charset="utf-8" src="$basePathjs/ueditor/ueditor.config.js"></script><scripttype="text/javascript"charset="utf-8" src="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医养生课件
- 中专红色文化课件图片
- 共享共赢汽车租赁合同
- 管理外包合同
- 高端住宅委托代理合同
- 《会计信息系统》全套教学课件
- 塑钢门窗设计与施工合同
- 六安职业技术学院《环境基础化学》2023-2024学年第二学期期末试卷
- 辽宁朝阳市普通高中2025届高三下学期第二次段考历史试题试卷含解析
- 山东省青岛市58中2025届高三高考模拟试卷(二)物理试题含解析
- GB/T 4937.11-2018半导体器件机械和气候试验方法第11部分:快速温度变化双液槽法
- GB/T 3906-20203.6 kV~40.5 kV交流金属封闭开关设备和控制设备
- 跨越学习高原期-高中心理健康主题班会
- 博物馆藏品库房管理课件
- 电梯井内脚手架搭拆施工专项方案
- 涉外商标实务培训课件
- 2022年2月兴业银行审计部招聘人员模拟试题3套(含答案解析)
- 社会研究方法复习资料(风笑天版)
- 《青年友谊圆舞曲》音乐课件
- 博士后出站研究报告
- 中华人民共和国海关进出境自用物品申请表
评论
0/150
提交评论