以下に示すように、「menubar.jsp」という名前のページを作成しました。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
<head>
<s:head/>
<sj:head/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<div id='cssmenu'>
<ul>
<li><s:a action="#"><span>Home</span></s:a></li>
<li><s:a action="registerLink"><span>Register</span></s:a></li>
<s:url id="loginClick" value="/loginLink.action"></s:url>
<li><sj:a id="login_click" href="%{loginClick}" targets="mainContent"><span>Login</span></sj:a></li>
<li><s:a action="loginLink"><span>Administration</span></s:a></li>
<li class='last'><s:a action="#"><span>Preferences</span></s:a></li>
</ul>
</div>
</body>
</html>
次のように、このページを index.jsp ページに含めました。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css" media="all" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
$(function() {
$("#datepicker").datepicker();
});
</script>
<title>My Air - Home</title>
</head>
<body>
<div id="MainPage">
<jsp:include page="header.jsp"></jsp:include>
<jsp:include page="menubar.jsp"></jsp:include>
<div id="mainContent">
<div id="ContentLeft">
<jsp:include page="search.jsp"></jsp:include>
</div>
<div id="contentRight">
<jsp:include page="topdeals.jsp"></jsp:include>
</div>
</div>
<br>
<jsp:include page="footer.jsp"></jsp:include>
</div>
</body>
</html>
私が欲しいのは、LOGINリンクをクリックすると、loginPage.jspという名前のログインページが、IDが「mainContent」のdivに表示されることです。
struts.xml ファイルは次のとおりです。
<action name="loginLink" class="com.view.LoginAction" method="loginLink">
<result name="loginClicked">/loginPage.jsp</result>
</action>
クラス LoginAction の loginLink メソッドは、単純に「loginClicked」文字列を返します。コードを実行し、そのソースを確認しました。そこにはすべて問題ないように見えますが、ログインをクリックしても何も起こりません。別のファイルで同じ種類のコードを使用しました。うまくいきました。しかし、ここではそうではありません。私が欠けているもの、またはそれを機能させるために他に何をすべきか、誰かが私を助けることができますか? 前もって感謝します。
次のコードも同様のことを試みており、正常に動作します。最初のコードで何が間違っているのかわかりません:
以下は、私の親ページ loginSuccess.jsp です。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css" media="all" />
<title>Login</title>
</head>
<body>
<div id="MainPage">
<jsp:include page="header.jsp"></jsp:include>
<jsp:include page="menubaruser.jsp"></jsp:include>
<div style="width:898px"><br><center>Welcome Mr. <b><s:property value="#session.name"/> </b></center> </div>
<div id="mainContent">
<div id="ajaxdiv">
<div id="ContentLeft">
<jsp:include page="search.jsp"></jsp:include>
</div>
<div id="contentRight">
<jsp:include page="topdeals.jsp"></jsp:include>
</div>
</div>
<br>
<div>
<jsp:include page="userHistoryWidget.jsp"></jsp:include>
</div>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</div>
</body>
</html>
以下は、いくつかの ajax 呼び出しを含み、loginSuccess.jsp の mainContent div に応答を入れる子ページ menubaruser.jsp です。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<s:head/>
<sj:head/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<div id='cssmenu'>
<ul>
<li><s:a action="#"><span>Home</span></s:a></li>
<s:url id="showProfile" value="/profile.action"></s:url>
<li><sj:a id="profile_show" href="%{showProfile}" targets="mainContent"><span>Show Profile</span></sj:a></li>
<s:url id="editProfile" value="/editProfileLink.action"></s:url>
<li><sj:a id="profile_edit" href="%{editProfile}" targets="mainContent"><span>Update Profile</span></sj:a></li>
<s:url id="signout" value="/logout.action"></s:url>
<li><sj:a id="signout" href="%{signout}" targets="mainContent"><span>Sign Out</span></sj:a></li>
<%-- <li class='last'><s:a action="#"><span>Contact Us</span></s:a></li> --%>
</ul>
</div>
</body>
</html>
以下は、私の struts.xml マッピングです。
<action name="profile" class="com.view.ProfileAction" method="showProfile">
<interceptor-ref name="myinterceptorSt" />
<result name="loginSessionNotCreated">/loginPage.jsp</result>
<result name="profile">/profile.jsp</result>
</action>
<action name="editProfileLink" class="com.view.ProfileAction" method="editProfileLink">
<interceptor-ref name="myinterceptorSt" />
<result name="loginSessionNotCreated">/loginPage.jsp</result>
<result name="editProfile">/editProfile.jsp</result>
</action>
<action name="editProfile" class="com.view.EditProfileAction" method="editProfile">
<interceptor-ref name="myinterceptorSt" />
<result name="loginSessionNotCreated">/loginPage.jsp</result>
<result name="profileUpdated">/profileUpdated.jsp</result>
</action>
このコードは正常に動作します。私は最初の問題で同じことを実装しました。しかし、うまくいきません。何か提案できますか?