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

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

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

    隨筆 - 11  文章 - 11  trackbacks - 0

    留言簿(2)

    隨筆分類(13)

    隨筆檔案(11)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    在Struts1.1-1.2中如果不想沒有登錄的用戶訪問一些action,可以擴展RequestProcessor,并重載processProprocess方法,在其中進行驗證

    public class CustomRequestProcessor
            extends RequestProcessor {
        protected boolean processPreprocess (
                HttpServletRequest request,
                HttpServletResponse response) {
            HttpSession session = request.getSession(false);
            //If user is trying to access login page
            // then don't check
            if( request.getServletPath().equals("/loginInput.do")
                || request.getServletPath().equals("/login.do") )
                return true;
            //Check if userName attribute is there is session.
            //If so, it means user has allready logged in
            if( session != null &&
            session.getAttribute("userName") != null)
                return true;
            else{
                try{
                    //If no redirect user to login Page
                    request.getRequestDispatcher 
                        ("/Login.jsp").forward(request,response);
                }catch(Exception ex){
                }
            }
            return false;
        }
    }
    

    相應的,在struts-config.xml中加入controller元素

    <controller>
     <set-property  property="processorClass"
     value="com.sample.util.CustomRequestProcessor"/>
    </controller>
    

    但剛才看到在Struts1.3中,已經不再使用RequestProcessor,而是用ComposableRequestProcessor 來實現自定義的request響應。






    posted @ 2007-04-09 18:52 hijeff 閱讀(448) | 評論 (0)編輯 收藏

    三個@Entity類Tc, Tracer, Track是三向關聯的的表, @Embeddable類TcTracer則存儲著三個表的ForeignKey

    @Entity
    @Table(name= "tc", catalog="first_hiber")
    public class Tc {
          @org.hibernate.annotations.CollectionOfElements
          @JoinTable(name="tc_tracer", joinColumns=@JoinColumn(name="tc_id"))
          private Set<TcTracer> tcTracers = new HashSet<TcTracer>();
    
          @Id @GeneratedValue
          @Column(name="tc_id", nullable= false)
          private Long id;
    }
    
      @Embeddable
      @Table(name="tc_tracer")
      public class TcTracer {
          @org.hibernate.annotations.Parent
          private Tc tc;
      
    @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name="tracer_id", nullable=false, updatable=false) private Tracer tracer; @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name="track_id", nullable=false, updatable=false) private Track track; }

    如上,將TcTracer作為Tc的子元素,從而實現Tc的三相關聯。

    用HQL可以通過特定的Tc,Tracer得到對應的所有Track:

      select tctracers.track
      from Tc tc
          join tc.tcTracers tctracers
      where tc.name="tc name"
          and tctracers.tracer.name="tracer name"
    
     List<Track> tracks = session.createQuery(HQL).list();
    
    posted @ 2007-04-02 17:45 hijeff 閱讀(388) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 免费一级一片一毛片| 精品久久8x国产免费观看| 精品久久久久久久免费加勒比| 亚洲天堂一区二区三区四区| 青青草无码免费一二三区| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 亚洲国产另类久久久精品黑人| 丰满妇女做a级毛片免费观看| 免费在线观看黄网| 一级特黄aaa大片免费看| 亚洲乱码中文字幕综合234| jizz免费在线影视观看网站| 在线亚洲97se亚洲综合在线| 亚洲中文字幕在线观看| 好吊色永久免费视频大全| 亚洲国产婷婷六月丁香| 最近中文字幕mv免费高清在线 | 最新亚洲春色Av无码专区| 免费视频中文字幕| 全部一级一级毛片免费看| 亚洲人成人无码网www电影首页 | 最新亚洲成av人免费看| 久久午夜无码免费| 国产精品酒店视频免费看| 青青久久精品国产免费看| 亚洲va无码专区国产乱码| 狼群影院在线观看免费观看直播| 亚洲一区二区三区乱码在线欧洲| 巨胸喷奶水www永久免费| 亚洲av无码乱码国产精品| 波多野结衣免费在线观看| 丰满亚洲大尺度无码无码专线| 午夜国产精品免费观看 | 黄网站色视频免费看无下截| 久久久久亚洲av成人无码电影| 在线人成精品免费视频| 亚洲啪AV永久无码精品放毛片| 亚洲无码精品浪潮| 日本视频一区在线观看免费| 国产精品日本亚洲777| 午夜亚洲国产理论秋霞|