için struts.xml içine engelleyici ekleme Struts 2 çerçevesini kullandım ve bir Giriş Sayfası olan bir web uygulaması oluşturdum. , Action2
, Action3
adında üç farklı Action
sınıfı ve Action
sınıflarında bazı iş mantığı çalıştırılarak işlenen JSP sayfaları için farklı görünümlerim var.struts2 tüm eylem sınıfı
Şimdi, kullanıcının, Action
sınıfında işlem gerçekleştirmeden önce oturum açıp açmadığını kontrol etmek istiyorum. Bu yüzden, aşağıda iyi çalışan bir engel oluşturdum.
public String intercept(ActionInvocation invocation) throws Exception
{
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
if(session.isNew())
{
response.sendRedirect("Login.action");
}
System.out.println("Interceptor Fired");
String result = invocation.invoke();
return result;
}
Ne struts.xml
olmak istiyorum yerine
<interceptor-ref name="newStack"/>
Benim struts.xml
dosyasında aşağıdaki gibi tüm eylemler için bir önleme eklemenin her eylem I için
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="printMsgInterceptor" class="LoginInterceptor"></interceptor>
<interceptor-stack name="newStack">
<interceptor-ref name="printMsgInterceptor"/>
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<action name="actone" class="Action1">
<result name="success">/success.jsp</result>
<interceptor-ref name="newStack"/>
</action>
<action name="acttwo" class="Action2">
<result name="success">/success.jsp</result>
<interceptor-ref name="newStack"/>
</action>
<action name="actthree" class="Action3">
<result name="success">/success.jsp</result>
<interceptor-ref name="newStack"/>
</action>
</package>
sahiptir
el ile eklemek yerine önleyici çalıştırırstruts.xml
içinde yazılmış bazı tanımını istiyorum Her bir işlem için elle
interceptor-ref
koyarak Değilse
<interceptor-ref name="newStack"/>
Teşekkürler için teşekkürler gr8 çalışır Ben bu engelleyiciyi yeniden giriş döngüsüyle sonuçlandığından, Giriş Sayfası olan tek bir sayfa için istemiyorum. Belirli bir eylem için engelleyiciyi önlemenin bir yolu var –
belirli bir paket ve bunu genişleten her paket için önleme yığını tanımlayabilirsiniz varsayılan yığını kullanır.Engellenmemesi gereken diğer işlemler (Giriş gibi), öntanımlı varsayılan yığınının tanımlandığı alanı genişletmeyen diğer paketlerde tanımlanabilir. –