2016-02-06 52 views
0

當我點擊這個鏈接,放在Login.jsp上,我得到一個錯誤"The requested resource is not available."S:URL鏈接返回404 「請求的資源不可用」

<s:url id="register_url" action="registerLink" /> 
<s:a href="%{register_url}"> Register </s:a> 

Login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<!DOCTYPE html "> 
<html> 
    <head> 
     <title>Biblioteka</title> 
    </head> 
    <body> 
     <s:url id="register_url" action="registerLink" /> 
     <s:a href="%{register_url}"> Register </s:a> 
     <div class="login-div"> 
      <s:actionerror escape="false" /> 
      <s:actionmessage escape="false" /> 
      <s:form action="login" method="post"> 
       <s:textfield name="memberBean.email" label="E-mail" /> 
       <s:password name="memberBean.password" label="Fjalëkalimi" /> 
       <s:submit value="Dërgo" /> 
      </s:form> 
     </div> 
    </body> 
</html> 

另外,如果我將這個s:url標籤放在Home.jsp內,它就完美地鏈接了。

struts.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 
"http://struts.apache.org/dtds/struts-2.5.dtd"> 
<struts> 
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> 
<constant name="struts.devMode" value="true" /> 
<constant name="struts.custom.i18n.resources" 
      value="ApplicationResources"/> 


<package name="default" namespace="/" extends="struts-default"> 

    <interceptors> 
     <interceptor class="org.ikubinfo.biblioteka.interceptor.LoginInterceptor" 
      name="loginInterceptor"> 
     </interceptor> 
     <interceptor-stack name="loginStack"> 
      <interceptor-ref name="loginInterceptor" /> 
      <interceptor-ref name="defaultStack" /> 
     </interceptor-stack> 
    </interceptors> 


    <!-- login action --> 
    <action name="login" class="org.ikubinfo.biblioteka.controller.LoginAction"> 
     <result name="error">/WEB-INF/view/Login.jsp</result> 
     <result name="success" type="redirect">home</result> 
    </action> 

    <!-- home link action --> 
    <action name="home" class="org.ikubinfo.biblioteka.controller.LoginAction" 
     method="home"> 
     <interceptor-ref name="loginStack" /> 
     <result name="error">/WEB-INF/view/Login.jsp</result> 
     <result name="success">/WEB-INF/view/Home.jsp</result> 
    </action> 

    <!-- logout action --> 
    <action name="logout" class="org.ikubinfo.biblioteka.controller.LoginAction" 
     method="logout"> 
     <result>/WEB-INF/view/Login.jsp</result> 
    </action> 

    <!-- register action --> 
    <action name="register" 
     class="org.ikubinfo.biblioteka.controller.RegisterAction" method="execute"> 
     <result name="error">/WEB-INF/view/Register.jsp</result> 
     <result name="input">/WEB-INF/view/Register.jsp</result> 
     <result name="success">/WEB-INF/view/RegistrationSuccess.jsp</result> 
    </action> 


    <!-- register link --> 
    <action name="registerLink" 
     class="org.ikubinfo.biblioteka.controller.RegisterAction" method="redirect"> 
     <result>/WEB-INF/view/Register.jsp</result> 
    </action> 

</package> 

+0

你在問什麼不清楚。嘗試發佈一些相關的代碼。它不足以幫助我們。 – Satya

+0

@Satya這是一個downvote的原因? – Desaretiuss

+1

我沒有downvote這個問題.. – Satya

回答

2

id屬性的內容被棄用。改爲使用var。如果包中有名稱空間,請使用名稱空間屬性。引用上下文變量#。不要使用下劃線作爲變量名稱。

<s:url var="registerUrl" namespace="/" action="registerLink" /> 
<s:a href="%{#registerUrl}">Register</s:a> 
相關問題