4. مثال ۰۳ – کلیدهای ناوبری
4.1. پروژه NetBeans
![]() |
- در [1]:
- [web.xml]: فایل پیکربندی برنامه وب
- [struts.xml]: فایل پیکربندی Struts
- [Action1.java]: اکشن واحد برنامه
- [Page1.JSP, Page2.JSP]: دو نمای برنامه
- در [2]: نمایش [Page1.JSP]
- در [3]: نمایش [Page2.JSP]
4.2. فایل [struts.xml]
به شرح زیر است:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<action name="index">
<result type="redirectAction">
<param name="actionName">Action1</param>
<param name="namespace">/actions</param>
</result>
</action>
</package>
<package name="actions" namespace="/actions" extends="struts-default">
<action name="Action1" class="actions.Action1">
<result name="page1">/vues/Page1.JSP</result>
<result name="page2">/vues/Page2.JSP</result>
</action>
</package>
</struts>
- خطوط 17–19: متد execute در [Action1] دو کلید ناوبری را بازمیگرداند:
- page1، که نمای /views/Page1.JSP را نمایش خواهد داد
- page2، که نمای /views/Page2.JSP را نمایش خواهد داد
4.3. اقدام [Action1]
این مشابه موردی است که در مثال قبلی آمده است:
package actions;
import com.opensymphony.xwork2.ActionSupport;
public class Action1 extends ActionSupport{
//مدل عملیاتی
private String param1="valeur1";
private String param2="valeur2";
@Override
public String execute(){
//انتخاب تصادفی بین دو نما
int i=(int)(Math.random()*2);
if(i==0){
return "page1";
}else{
return "page2";
}
}
//گیرنده و تنظیمکنندهها
...
}
- خطوط ۱۲–۱۴: متد execute به صورت تصادفی کلیدهای مورد انتظار page1 و page2 را بازمیگرداند.
4.4. دیدها JSP
Page1.JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Page1</title>
</head>
<body>
<h1>Page1</h1>
param1=<s:property value="param1"/><br/>
</body>
</html>
در خط ۱۱، صفحه مقدار فیلد param1 را از [Action1] نمایش میدهد.
Page2.JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Page2</title>
</head>
<body>
<h1>Page2</h1>
param2=<s:property value="param2"/><br/>
</body>
</html>
خط ۱۱: صفحه مقدار فیلد param2 را از [Action1] نمایش میدهد.
4.5. آزمایشها
![]() | ![]() |
وقتی یکی از صفحات در مرورگر باز شد، باید آن را رفرش کنید (F5) تا عمل [Action1] را به طور مکرر اجرا کند تا صفحه دیگر ظاهر شود. همچنین میتوانید پارامترها را ارسال کنید:
![]() |



