<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    西沙璞玉
    愛不容易
    posts - 0,comments - 4,trackbacks - 0

    --

    項目基本架構 ext+action+service+dao+josn



    1,action


    spring<bean id="LoginAction"
    class="com.htsoft.oa.action.system.LoginAction"
    scope="prototype"/>


    struts <action name="login"
    class="LoginAction" method="login">


    classbean id相同


    下面是注入的service


    struts @Resource


    private
    AppUserService userService;
    (這個userService找不到對應的bean id,其實沒有對應關系,注解標簽會自動注入類型為AppUserServiceBean,根據實現類可以找到)

    @Resource(注解方式注入,默認是type類型相同,也可以用name=“”與 bean id 對應)



    private
    SysConfigService sysConfigService;


    spring




    <bean id="appUserService" class="com.htsoft.oa.service.system.impl.AppUserServiceImpl"> <constructor-arg index="0"ref="appUserDao"/></bean>




    <bean id="sysConfigService"class="com.htsoft.oa.service.system.impl.SysConfigServiceImpl"><constructor-arg index="0"ref="sysConfigDao"/>


    </bean>



    2,service



    spring <beanid="appUserService"class="com.htsoft.oa.service.system.impl.AppUserServiceImpl">


    <constructor-arg index="0" ref="appUserDao"/> (構造器注入,多個參數從0開始)

    </bean>



    <bean id="indexDisplayService"class="com.htsoft.oa.service.system.impl.IndexDisplayServiceImpl">



    <constructor-arg index="0" ref="indexDisplayDao"/>

    </bean>

    <bean id="appRoleService"class="com.htsoft.oa.service.system.impl.AppRoleServiceImpl">


    <constructor-arg
    index="0" ref="appRoleDao"/>
    </bean>



    struts



    @Resource



    IndexDisplayService
    indexDisplayService;


    @Resource



    AppRoleService
    appRoleService;


    public AppUserServiceImpl(AppUserDao dao) {

    super(dao);

    this.dao
    = dao;


    }



    3,dao



    spring


    <bean id="appUserDao"
    class="com.htsoft.oa.dao.system.impl.AppUserDaoImpl"
    parent="baseDao"/>

    parent

    表示繼承的父類如果有很多繼承同一個父類的BEAN


    那么在配置文件中實例那些BEAN時候可以省略掉父類已經注入的屬性


    bean定義繼承父bean定義,它可以覆蓋父bean的一些值,或者它需要的值。


    那么在配置文件中實例那些BEAN時候可以省略掉父類已經注入的屬性

    <bean id="baseDao"
    abstract="true" class="com.htsoft.core.dao.impl.BaseDaoImpl"
    parent="genericDao"/>



    <bean id="genericDao"
    abstract="true"
    class="com.htsoft.core.dao.impl.GenericDaoImpl">



    <property
    name="jdbcTemplate" ref="jdbcTemplate"/>(getter
    ,setter方式注入)


    <property name="sessionFactory"
    ref="sessionFactory"/>



    </bean>

    abstract="true" 抽象bean,作為父類 ,子類bean parent



    app-resources.xml



    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

    <property name="dataSource" ref="dataSource"/>

    </bean>


    struts



    GennericDaoImpl.java 這個類選用了springjdbcTemplate連接數據庫


    protected JdbcTemplate jdbcTemplate;





    (jdbcTemplatebean id 相對應)



    public
    void setJdbcTemplate(JdbcTemplate jdbcTemplate) {



    this.jdbcTemplate
    = jdbcTemplate;



    }





    public
    void setPersistType(Class persistType) {



    this.persistType
    = persistType;



    }





    用注解標簽,看不到依賴關系,沒有顯示注入明了



    /////////////////////////////////////////////////////////////////////////////



    獲取系統配置的bean 這里的sysConfigService是個bean id的名字 (目錄查找方式)





    private static ApplicationContext
    appContext;



    下面的getBean封裝了這個appContext.getBean(beanId)這個可以獲得bean實例





    public
    void setApplicationContext(ApplicationContext applicationContext) throws
    BeansException {



    this.appContext=applicationContext;



    }





    public static void reloadSysConfig(){



    //configMap.clear();



    SysConfigService
    sysConfigService=(SysConfigService)getBean("sysConfigService");



    List<SysConfig>
    list=sysConfigService.getAll();



    for(SysConfig
    conf:list){



    configMap.put(conf.getConfigKey(),conf.getDataValue());



    }



    }



    //////////////////////////////////////////



    <action name="*SalesChance"
    class="SalesChanceAction" method="{1}">



    <result>${successResultValue}</result>



    <result
    name="input">/error.jsp </result>



    *號是通配符,就是說這個actionname為任意名稱。而class中的{1}是取第一個通配符的值。



    ${successResultValue}BaseAction.java



    private String
    successResultValue="/jsonString.jsp";
    成功跳轉頁面





    jsonString.jsp頁面
    <s:property value="jsonString" escape="false" />









    action到返回頁面的配置:



    <action name="*SalesChance"
    class="SalesChanceAction" method="{1}">



    <result>${successResultValue}</result>



    <result
    name="input">/error.jsp </result>



    *號是通配符,就是說這個actionname為任意名稱。而class中的{1}是取第一個通配符的值。



    ${successResultValue}



    BaseAction.java



    private String
    successResultValue="/jsonString.jsp";
    成功跳轉頁面





    jsonString.jsp頁面



    <s:if test="#request.isExport==null
    || #request.isExport==false"
    >



    <s:property value="jsonString" escape="false" />



    </s:if>





    protected String jsonString=JSON_SUCCESS;



    public static final String JSON_SUCCESS="{success:true}";





    具體action



    msg.append(",failure:true}");



    setJsonString(msg.toString());



    jsonString="{success:false,msg:'該用戶賬號不存在!'}";





    setJsonString(msg.toString());



    從這里重新設置json



    Gson
    是 Google 提供的用來在 Java 對象和 JSON 數據之間進行映射的 Java 類庫??梢詫⒁粋€ JSON 字符串轉成一個 Java 對象,或者反過來。



    /**



    * 顯示詳細信息



    * @return



    */



    public String get(){



    AppRole appRole=appRoleService.get(roleId);



    Gson gson=new
    GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();



    //將數據轉成JSON格式



    StringBuffer sb = new StringBuffer("{success:true,data:");



    sb.append(gson.toJson(appRole));



    sb.append("}");



    setJsonString(sb.toString());





    return SUCCESS;



    }









    posted on 2012-05-04 13:50 @趙 閱讀(394) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    哥哥最近不是很忙
    主站蜘蛛池模板: 视频免费在线观看| 精品乱子伦一区二区三区高清免费播放 | 日本一区二区三区在线视频观看免费| 亚洲高清免费在线观看| 亚洲日韩图片专区第1页| 免费人成毛片动漫在线播放| 无码乱人伦一区二区亚洲| 暖暖日本免费中文字幕| 亚洲国产精品SSS在线观看AV| 国产在线观看免费视频软件| 亚洲AV无码专区国产乱码电影 | 男人都懂www深夜免费网站| 亚洲AV无码成人精品区在线观看 | 77777_亚洲午夜久久多人| 免费黄色福利视频| 精品国产成人亚洲午夜福利| 在线播放免费人成视频在线观看| 亚洲国产aⅴ成人精品无吗| 免费国产真实迷j在线观看| h视频在线观看免费| 亚洲AV无码精品无码麻豆| 99久久国产免费中文无字幕| 亚洲国产精品综合福利专区| 午夜爱爱免费视频| 一级毛片在线免费播放| 亚洲AV日韩AV天堂一区二区三区| 啦啦啦完整版免费视频在线观看 | 7777久久亚洲中文字幕| 情侣视频精品免费的国产| 污污污视频在线免费观看| 国产亚洲3p无码一区二区| 国产电影午夜成年免费视频| 久久精品亚洲日本波多野结衣| 亚洲女人被黑人巨大进入| 久久99青青精品免费观看| 亚洲真人无码永久在线观看| 亚洲日本人成中文字幕| 四虎影视精品永久免费网站| 无码精品一区二区三区免费视频 | 亚洲AV日韩精品久久久久| 影音先锋在线免费观看|