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

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

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

    rethink

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      11 隨筆 :: 0 文章 :: 16 評(píng)論 :: 0 Trackbacks
    根據(jù)官網(wǎng)的快速開(kāi)始指南SpringSide 復(fù)活兩篇文章,簡(jiǎn)單了解ss3的大致框架,并成功建立基于ss3風(fēng)格的項(xiàng)目。

    但其中也遇到幾個(gè)小問(wèn)題,首先就是Maven,由于以前安裝過(guò)可能有些配置被改變了導(dǎo)致無(wú)法正常執(zhí)行quickstart-all-in-one.bat。后來(lái)直接指定ss3中的maven目錄就可以了,懷疑是maven\conf\settings.xml問(wèn)題。另外一個(gè)問(wèn)題就是在建立自己的項(xiàng)目后,執(zhí)行copy-jar.bat總是不成功(有功夫要好好研究一下maven),最后只好直接把examples\mini-web\lib和examples\mini-web\webapp\WEB-INF\lib下的jar都拷過(guò)來(lái)。

    建好了項(xiàng)目準(zhǔn)備自己添加點(diǎn)功能試試,可是沒(méi)有找到能夠自動(dòng)生成代碼的腳本,只好自己一點(diǎn)點(diǎn)添加,還好ss3在配置方面簡(jiǎn)便了許多。

    1、生成實(shí)體類
    @Entity
    @Table(name 
    = "dict_nation")
    @Cache(usage 
    = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
    public class Nation extends IdEntity {

        
    private String name;

        
    public String getName() {
            
    return name;
        }

        
    public void setName(String name) {
            
    this.name = name;
        }

        @Override
        
    public String toString() {
            
    return ToStringBuilder.reflectionToString(this);
        }

    }
    2、生成dao、service類
    @Repository
    public class NationDao extends HibernateDao<Nation, Long> {

        
    public Nation loadByName(String name) {
            
    return findUniqueByProperty("name", name);
        }
    }

    @Service
    @Transactional
    public class NationManager extends EntityManager<Nation, Long> {

        @Autowired
        
    private NationDao nationDao;

        @Override
        
    public NationDao getEntityDao() {
            
    return nationDao;
        } 
        
        
    public Nation getNation(String name) {
            
    return nationDao.loadByName(name);
        }
        
    }
    以上操作都不用修改配置文件,真是很方便。

    3、生成web相關(guān)文件
    @SuppressWarnings("serial")
    @Results( { @Result(name 
    = CRUDActionSupport.RELOAD, location = "nation.action", type = "redirect") })
    public class NationAction extends CRUDActionSupport<Nation> {

        @Autowired
        
    private NationManager nationManager;

        
    // 基本屬性
        private Nation entity;
        
    private Long id;
        
    private List<Nation> allNations;

        
    public Nation getModel() {
            
    return entity;
        }

        @Override
        
    protected void prepareModel() throws Exception {
            
    if (id != null) {
                entity 
    = nationManager.get(id);
            } 
    else {
                entity 
    = new Nation();
            }
        }

        
    public void setId(Long id) {
            
    this.id = id;
        }

        
    public List<Nation> getAllNations() {
            System.out.println(
    "test");
            
    return allNations;
        }

        @Override
        
    public String delete() throws Exception {
            
    try {
                nationManager.delete(id);
                addActionMessage(
    "刪除角色成功");
            } 
    catch (ServiceException e) {
                logger.error(e.getMessage(), e);
                addActionMessage(e.getMessage());
            }
            
    return RELOAD;
        }

        @Override
        
    public String list() throws Exception {
            allNations 
    = nationManager.getAll();
            
    return SUCCESS;
        }

        @Override
        
    public String input() throws Exception {
            System.out.println(
    "test");
            
    return INPUT;
        }

        @Override
        
    public String save() throws Exception {
            nationManager.save(entity);
            addActionMessage(
    "保存用戶成功");
            
    return RELOAD;
        }

    }
    修改安全文件applicationContext-security.xml
            <intercept-url pattern="/user/nation!save*" access="A_MODIFY_ROLE" />
            
    <intercept-url pattern="/user/nation!delete*" access="A_MODIFY_ROLE" />
            
    <intercept-url pattern="/user/nation*" access="A_VIEW_ROLE" />
    添加nation.jsp和nation-input.jsp文件
    <body>
    <div id="menu">
    <h3>
        
    <href="${ctx}/user/user.action">帳號(hào)列表</a>
        
    <href="${ctx}/user/role.action">角色列表</a> 
        
    <href="${ctx}/user/nation.action">國(guó)籍列表</a> 
        
    <href="${ctx}/j_spring_security_logout">退出登錄</a>
    </h3>
    </div>

    <div id="message"><s:actionmessage theme="mytheme"/></div>

    <div id="filter">你好,<%=SpringSecurityUtils.getCurrentUserName()%>.</div>

    <div id="listContent">
    <table>
        
    <tr>
            
    <th><b>名稱</b></th>
            
    <th><b>操作</b></th>
        
    </tr>

        
    <s:iterator value="allNations">
            
    <tr>
                
    <td>${name}</td>
                
    <td>&nbsp; 
                    
    <security:authorize ifAnyGranted="A_MODIFY_ROLE">
                        
    <href="nation!input.action?id=${id}">修改</a>
                        
    <href="nation!delete.action?id=${id}">刪除</a>
                    
    </security:authorize>
                
    </td>
            
    </tr>
        
    </s:iterator>
    </table>
    </div>

    <div id="footer">
        
    <security:authorize ifAnyGranted="A_MODIFY_ROLE">
            
    <href="nation!input.action">增加新國(guó)籍</a>
        
    </security:authorize>
    </div>

    <div id="comment">本頁(yè)面為單純的白板,各式Table Grid組件的應(yīng)用見(jiàn)Showcase項(xiàng)目(開(kāi)發(fā)中).</div>
    </body>

    <body>
    <h3><s:if test="id == null">創(chuàng)建</s:if><s:else>修改</s:else>角色</h3>
    <div id="inputContent">
    <form id="inputForm" action="nation!save.action" method="post">
    <input type="hidden" name="id" value="${id}" />
    <table>
        
    <tr>
            
    <td>國(guó)籍:</td>
            
    <td><input type="text" name="name" size="40" value="${name}" class="required"/></td>
        
    </tr>
        
    <tr>
            
    <td colspan="2">
                
    <input type="submit" value="提交" />&nbsp; 
                
    <input type="button" value="取消" onclick="history.back()"/>
            
    </td>
        
    </tr>
    </table>
    </form>
    </div>
    </body>
    完成。重新部署、運(yùn)行,可以執(zhí)行對(duì)國(guó)籍的增刪改查。

    雖然最終成功使用,但是其中遇到一個(gè)非常惱火的事情。由于定義的表名是dict_nation所以后面相關(guān)的名稱都是DictNation和dictNation,結(jié)果新增的功能無(wú)法實(shí)現(xiàn),懷疑是違反了某個(gè)框架的命名規(guī)范,導(dǎo)致無(wú)法實(shí)現(xiàn),有空再深入學(xué)習(xí)ss3。

    posted on 2009-03-20 17:54 rethink 閱讀(4379) 評(píng)論(3)  編輯  收藏 所屬分類: web framework

    評(píng)論

    # re: 學(xué)習(xí)springside3(一) 2009-03-20 19:33 super2
    <springside.version>3.1.0</springside.version>
    <spring.version>2.5.6</spring.version>
    <hibernate.version>3.3.1.GA</hibernate.version>
    <struts2.version>2.1.6</struts2.version>
    <cxf.version>2.1.3</cxf.version>
    <spring-security.version>2.0.4</spring-security.version>
    <slf4j.version>1.5.6</slf4j.version>

    版本有問(wèn)題,和JAR包不一致,我用的時(shí)候也是無(wú)法生成,后來(lái)改動(dòng)pom-parent.xml就好了  回復(fù)  更多評(píng)論
      

    # re: 學(xué)習(xí)springside3(一) 2009-03-22 12:57 海邊沫沫
    最新的SpringSide3.1.2 all in one是有點(diǎn)問(wèn)題,把生成的項(xiàng)目中的pom-parent.xml中的springside.version修改成3.1.2,然后再運(yùn)行copy-jar.bat就行了。  回復(fù)  更多評(píng)論
      

    # re: 學(xué)習(xí)springside3(一) 2009-03-24 10:37 rethink
    謝謝樓上兩位的解釋。。。。。。  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成人免费视频一区二区| 全免费A级毛片免费看网站| 国产成人亚洲毛片| 91亚洲一区二区在线观看不卡| 亚洲精品视频免费| 四虎影视永久免费观看| 免费a级毛片无码a∨蜜芽试看 | 嫩草影院在线免费观看| 91精品导航在线网址免费| 久久久久久av无码免费看大片| 国产亚洲蜜芽精品久久| 最新亚洲精品国偷自产在线| 久久综合亚洲鲁鲁五月天| 亚洲AV无码成人精品区蜜桃| 国产亚洲精品拍拍拍拍拍| 全黄a免费一级毛片人人爱| 四虎成人精品一区二区免费网站 | 久久夜色精品国产噜噜亚洲AV| 久久久久亚洲精品无码网址| 免费在线观看污网站| 国产一级淫片a免费播放口之| 成人片黄网站色大片免费| 4399好看日本在线电影免费| 51视频精品全部免费最新| 免费国产污网站在线观看15| 久草视频在线免费看| 亚洲免费观看视频| 一个人免费视频观看在线www | 在线观看亚洲精品福利片| 国产a v无码专区亚洲av| 亚洲美女高清一区二区三区| 亚洲国产精品一区二区第四页| xvideos亚洲永久网址| 免费一级毛片在级播放| 亚洲av再在线观看| 精品国产亚洲男女在线线电影 | 亚洲欧美成人一区二区三区| 亚洲国产日韩精品| 亚洲hairy多毛pics大全| 国产精品亚洲片在线花蝴蝶| 一区二区三区AV高清免费波多|