Comment passer la valeur de jsp par le framework struts 2 Je vais écrire le modèle.
addition.jsp
<%@ page contentType="text/html; charset=Windows-31J" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<html:html>
<head>
<title>une addition</title>
<meta http-equiv="Content-Type"
content="text/html; charset=Windows-31J">
</head>
<body>
<html:form action="/TestAction">
<html:text property="leftNum" size="10" maxlength="7" /> +
<html:text property="rightNum" size="10" maxlength="7" />
<html:submit property="submit" value="Courir"/>
</html:form>
</body>
</html:html>
Action.java est décrit comme suit.
TestAction.java
public final class TestAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) {
TestActionForm taf = (TestActionForm)form;
//Obtenez la valeur de TestActionForm
int leftNum = taf.getLeftNum();
int rightNum = taf.getRightNum();
int resultNum = 0;
resultNum = leftNum + rightNum;
//Définir le résultat du calcul dans TestActionForm
taf.setResultNum(resultNum);
//Spécifiez la destination de la transition après avoir exécuté la classe d'action.
return (mapping.findForward("result.jsp"));
}
}
Définissez comme suit dans struts-config.xml.
struts-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<!--Définir la classe ActionForm pour stocker les données dans le bean-->
<!--nom est une abréviation, type est un nom de fichier comprenant le chemin-->
<form-bean
name="Action"
type="struts.TestActionForm"/>
</form-beans>
<action-mappings>
<!--action définit la classe Action qui traite réellement-->
<!--path est une abréviation lorsqu'elle est spécifiée par jsp-->
<!--name est le bean à utiliser(ActionForm)Abréviation pour-->
<!--type est le nom du fichier avec le chemin-->
<!--scope est un format de transfert de données-->
<!--l'entrée est exécutée jsp-->
<action
path="/Welcome"
forward="/pages/Welcome.jsp"/>
<action
path="/TestAction"
type="struts.TestAction"
name="Action"
scope="request"
input="/addition.jsp">
<forward name="result.jsp" path="/result.jsp"/>
</action>
</action-mappings>
<message-resources parameter="java/MessageResources"/>
</struts-config>
Utilisez ce qui suit pour jsp du résultat du calcul.
result.jsp
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<bean:parameter id ="left_Num" name ="leftNum"/>
<bean:parameter id ="right_Num" name ="rightNum"/>
<html:html>
<head>
<title>Résultat du calcul</title>
<meta http-equiv="Content-Type"
content="text/html; charset=Windows-31J">
</head>
<body>
<%= left_Num %> + <%= right_Num %> =
</body>
</html:html>
Dans la balise <bean: parameter>, entrez le paramètre de demande que vous souhaitez utiliser pour le nom et entrez une valeur appropriée pour id. Une variable est stockée dans la portée de la page en la définissant dans id. Quelle est la portée de la page? Cela signifie que la plage effective de la variable se situe dans jsp.
Entrez 3 dans la zone de texte de gauche et 4 dans la zone de texte de droite et appuyez sur le bouton d'exécution. Ensuite, le résultat de l'exécution est le suivant.
3 + 4 =
La valeur a été transmise. Cependant, comme <bean: paramètre> est une balise qui acquiert le paramètre de requête et l'affiche à l'écran, le résultat du calcul ne peut pas être affiché. Donc, obtenez le résultat du calcul par la méthode suivante.
Ajoutez une phrase à jsp du résultat du calcul.
result.jsp
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<bean:parameter id ="left_Num" name ="leftNum"/>
<bean:parameter id ="right_Num" name ="rightNum"/>
<html:html>
<head>
<title>Résultat du calcul</title>
<meta http-equiv="Content-Type"
content="text/html; charset=Windows-31J">
</head>
<body>
<%= left_Num %> + <%= right_Num %> =
<bean:write name="Action" property="resultNum" scope="request" />
</body>
</html:html>
Pour le nom, entrez le nom du bean défini dans struts-config.xml. Pour propriété, entrez le nom de la propriété du bean (variable définie dans Form). La portée définit où rechercher. Le résultat du calcul étant enregistré dans la requête HTTP, sélectionnez cette fois la requête. Les éléments qui peuvent être définis dans l'étendue sont les suivants.
page: page JSP requête: requête HTTP session: session HTTP application: application web
Comme précédemment, entrez 3 dans la zone de texte de gauche et 4 dans la zone de texte de droite et appuyez sur le bouton d'exécution. Le résultat du calcul est également affiché.
3 + 4 = 7
J'ai pu remettre les résultats du calcul! !!
Recommended Posts