4. Voorbeeld 03 – Navigatiesleutels
4.1. Het NetBeans-project
![]() |
- in [1]:
- [web.xml]: het configuratiebestand van de webapplicatie
- [struts.xml]: het configuratiebestand van Struts
- [Action1.java]: de enige actie van de applicatie
- [Page1.JSP, Page2.JSP]: de twee weergaven van de applicatie
- in [2]: weergave van [Page1.JSP]
- in [3]: weergave van [Page2.JSP]
4.2. Het bestand [struts.xml]
Dit is het volgende:
<?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>
- regels 17-19: de methode execute van [Action1] zal twee navigatiesleutels retourneren:
- page1, waarmee de weergave /vues/Page1.JSP wordt weergegeven
- page2, waarmee de weergave /vues/Page2.JSP wordt weergegeven
4.3. De actie [Action1]
Deze is vergelijkbaar met die in het vorige voorbeeld:
package actions;
import com.opensymphony.xwork2.ActionSupport;
public class Action1 extends ActionSupport{
// actiemodel
private String param1="valeur1";
private String param2="valeur2";
@Override
public String execute(){
// willekeurige keuze tussen twee weergaven
int i=(int)(Math.random()*2);
if(i==0){
return "page1";
}else{
return "page2";
}
}
// getters en setters
...
}
- regels 12-14: de methode execute genereert willekeurig de verwachte sleutels page1 en page2.
4.4. De weergaven 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>
Regel 11: de pagina geeft de waarde weer van het veld param1 van [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>
Regel 11: de pagina geeft de waarde weer van het veld param2 van [Action1].
4.5. De tests
![]() | ![]() |
Zodra een van de pagina's in de browser staat, moet deze worden vernieuwd (F5) om de actie [Action1] herhaaldelijk uit te voeren totdat de andere pagina wordt weergegeven. Er kunnen ook parameters worden doorgegeven:
![]() |



