我是刚进公司的菜鸟,公司给了我一个项目让我看我也不知道从哪里看起,项目用的是Ext + struts 2.0 + ibatis 组成请教各位大哥大姐!谢谢
解决方案 »
- 为什么当我管理员密码这项 不输入的时候 也能登陆成功那我明明对他判断了 请高手仔细给看看代码
- 数据存取问题,contains问题
- VC++的Dialog控件编辑工具找不到了 在哪找?
- java乱码的问题 在java类中system.out.println(); 可以输出中文 可是提交到mysql 就是乱码
- 大家帮我分析一下这是怎么回事!!快下岗了,哎!
- 如何通过URLConnection获取下载的资源的名称
- 系统会在2秒钟后,自动跳到下面最后一个连接?(实现方法)
- java框架的明天(讨论)
- 一个关于BMP的问题
- 有关SmartUpload:如何判断文件是否存在?
- 寻视频播放器java源码
- 大神们,如何屏蔽密码,用*号来代替?
看web中struts的拦截配置,然后看struts.xml文件
看这个项目用到的技术,struts应该是主要的处理啊,入口就是struts配置文件,ibatis是用来处理数据的,你主要先看action,知道action处理的是什么,接受哪些请求,返回哪些数据这样,然后运行看是不是你理解的
<struts>
<include file="struts-default.xml"/>
<constant name="objectFactory" value="spring"></constant>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<constant name="struts.multipart.maxSize" value="209715200"></constant> <package name="scttsc-default" extends="struts-default" >
<!--
<interceptors> <interceptor name="login" class="com.sctt.system.sys.user.interceptor.CheckLoginInterceptor"/>
<interceptor-stack name="teamwareStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="login"/>
</interceptor-stack> </interceptors>
<default-interceptor-ref name="teamwareStack" />
-->
<global-results>
<result name="login">/index.jsp</result>
<result name="Exception_all">/Error.jsp</result>
</global-results>
<action name="getList" class="srit.sm.action.SmAction" method="getList"></action>
<action name="insertSm" class="srit.sm.action.SmAction" method="insertSm"></action>
<action name="deleteSm" class="srit.sm.action.SmAction" method="deleteSm"></action>
<action name="getSmkay" class="srit.sm.action.SmAction" method="getSmkay"></action>
<action name="updateSm" class="srit.sm.action.SmAction" method="updateSm"></action>
<action name="updatemedical" class="srit.sm.action.SmAction" method="updatemedical"></action>
<action name="getconditions" class="srit.sm.action.SmAction" method="getconditions"></action>
<action name="Insar" class="srit.sm.action.SmAction" method="Insar"></action>
<action name="getwar" class="srit.sm.action.SmAction" method="getwar"></action>
<action name="getmedical" class="srit.sm.action.SmAction" method="getmedical"></action>
<action name="getcomboxmedical" class="srit.sm.action.SmAction" method="getcomboxmedical"></action>
<action name="insertmedical" class="srit.sm.action.SmAction" method="insertmedical"></action>
<action name="deletemedical" class="srit.sm.action.SmAction" method="deletemedical"></action>
<action name="getuserAll" class="srit.sm.action.PctAction" method="getuserAll"></action>
<action name="insertuser" class="srit.sm.action.PctAction" method="insertuser"></action>
<action name="deleteuser" class="srit.sm.action.PctAction" method="deleteuser"></action>
<action name="insertWszbzJm" class="srit.sm.action.CivilAction" method="insertWszbzJm"></action>
<action name="getWszbzJm" class="srit.sm.action.CivilAction" method="getWszbzJm"></action>
<action name="inserScjrfy" class="srit.sm.action.CivilAction" method="inserScjrfy"></action>
<action name="updatesoldiers" class="srit.sm.action.CivilAction" method="updatesoldiers"></action>
<action name="updateWszbzJm" class="srit.sm.action.CivilAction" method="updateWszbzJm"></action>
<action name="getScjrfy" class="srit.sm.action.CivilAction" method="getScjrfy"></action>
<action name="getScjrfy1" class="srit.sm.action.CivilAction" method="getScjrfy1"></action>
<action name="getScjrfy2" class="srit.sm.action.CivilAction" method="getScjrfy2"></action>
<action name="updatescjrfy" class="srit.sm.action.CivilAction" method="updatescjrfy"></action>
<action name="getScJr" class="srit.sm.action.CivilAction" method="getScJr"></action>
<action name="insertScJr" class="srit.sm.action.CivilAction" method="insertScJr"></action>
<action name="updateScJr" class="srit.sm.action.CivilAction" method="updateScJr"></action>
<action name="getuserid" class="srit.sm.action.SmAction" method="getuserid"></action>
<action name="getAll" class="srit.sm.action.yyyaopAction" method="getAll"></action>
<action name="insertYYyaop" class="srit.sm.action.yyyaopAction" method="insertYYyaop"></action>
<action name="delete_yyyp" class="srit.sm.action.yyyaopAction" method="delete_yyyp"></action>
<action name="getcombox" class="srit.sm.action.SmAction" method="getcombox"></action>
<action name="getcombo" class="srit.sm.action.PctAction" method="getcombo"></action>
<action name="findList" class="srit.sm.action.DoctorAction" method="findList"></action>
<action name="find" class="srit.sm.action.DoctorAction" method="find"></action>
<action name="updateDoctor" class="srit.sm.action.DoctorAction" method="updateDoctor"></action>
<action name="insertDoctor" class="srit.sm.action.DoctorAction" method="insertDoctor"></action>
<action name="deleteDoctor" class="srit.sm.action.DoctorAction" method="deleteDoctor"></action>
<action name="getcombo" class="srit.sm.action.DoctorAction" method="getcombo"></action>
<action name="finds" class="srit.sm.action.SeeDoctorAction" method="finds"></action>
<action name="updateDoctors" class="srit.sm.action.SeeDoctorAction" method="updateDoctors"></action>
<action name="insertDoctors" class="srit.sm.action.SeeDoctorAction" method="insertDoctors"></action>
<action name="deleteDoctors" class="srit.sm.action.SeeDoctorAction" method="deleteDoctors"></action>
<action name="insertWork" class="srit.sm.action.WorkAction" method="insertWork"></action>
<action name="findWork" class="srit.sm.action.WorkAction" method="findWork"></action> <action name="getKeShiAll" class="srit.sm.action.KeShiAction" method="getKeShiAll"></action>
<action name="inserjzjl" class="srit.sm.action.KeShiAction" method="inserjzjl"></action>
<action name="getselectgh" class="srit.sm.action.KeShiAction" method="getselectgh"></action>
<action name="getjzjlAll" class="srit.sm.action.KeShiAction" method="getjzjlAll"></action>
<action name="insertgh" class="srit.sm.action.KeShiAction" method="insertgh"></action>
<action name="deletegh" class="srit.sm.action.KeShiAction" method="deletegh"></action>
<action name="insertkeshi" class="srit.sm.action.KeShiAction" method="insertkeshi"></action>
<action name="deteleKsShiById" class="srit.sm.action.KeShiAction" method="deteleKsShiById" ></action>
<action name="getdoctor_ksid" class="srit.sm.action.KeShiAction" method="getdoctor_ksid" ></action>
<action name="deupKsShiById" class="srit.sm.action.KeShiAction" method="deupKsShiById" ></action>
<action name="getMedical_idAll" class="srit.sm.action.KeShiAction" method="getMedical_idAll" ></action>
<action name="getregionid" class="srit.sm.action.SmAction" method="getregionid"></action>
<action name="sessionrem" class="srit.sm.action.SmAction" method="sessionrem"></action>
</package>
</struts>
这个是applicationContext.xml的
<beans>
<bean id="subjectDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@10.164.11.144:1521:ngdata</value>
</property>
<property name="username">
<value>qms_shsy</value>
</property>
<property name="password">
<value>qms_shsy</value>
</property>
<property name="initialSize">
<value>5</value>
</property>
<property name="maxActive">
<value>10</value>
</property>
</bean> <bean id="testSqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:sqlMap-config.xml</value>
</property>
<property name="dataSource">
<ref bean="subjectDataSource" />
</property> </bean>
<bean id="sqlMapClientTemplate"
class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="testSqlMapClient" />
</property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="subjectDataSource" />
</property>
</bean>
<bean id="transactionProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
<property name="interceptorNames">
<value>transactionInterceptor</value>
</property>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<bean id="yyap" class="srit.sm.dao.yyyaopDaoImpl" autowire="byName">
<property name="sqlMapClient">
<ref bean="testSqlMapClient"/>
</property>
</bean>
<bean id="yyapservice" class="srit.sm.service.yyaopServiceImpl" autowire="byName"></bean>
<bean id="smdao" class="srit.sm.dao.SmmedicineDaoImpl" autowire="byName">
<property name="sqlMapClient">
<ref bean="testSqlMapClient"/>
</property>
</bean>
<bean id="service" class="srit.sm.service.SmServiceImpl" autowire="byName"></bean>
<bean id="logindao" class="srit.sm.dao.LoginDaoImpl" autowire="byName">
<property name="sqlMapClient">
<ref bean="testSqlMapClient"/>
</property>
</bean>
<bean id="loginservice" class="srit.sm.service.LoginServiceImpl" autowire="byName"></bean>
<!--suntianlong end -->
</beans>
他给我的数据库里好多表我没做过这个项目也不知道都是哪些所以没有头绪!
然后下面就是用到的action和对应的方法,你要看页面上哪些用到了这些action
spring里的配置比较普遍,一个是数据库连接,一个是事务配置,还有AOP切面
这些暂时可以不用管还有,最重要的,和项目组里的人多交流,不会就去问,看不懂就去问,不要怕人家笑话。
我想说一个action的CRUD就分那么多个<action>,为什么不用<action>下的<result>呢
ibatis还好,只是数据访问的一种框架而已,这部分看看代码就会基本使用了基本都在跟数据库打交道。多看看别人的代码就很容易用了。struts2还是很好用的。上手也比较简单
多看看,最好能把项目运行起来边运行边看代码会比较好