[JAVA] [Struts] Comment passer des valeurs entre jsps

Comment passer la valeur de jsp par le framework struts 2 Je vais écrire le modèle.

① Comment obtenir avec << bean: paramètre >>

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.

② Comment obtenir avec << bean: écrire >>

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

[Struts] Comment passer des valeurs entre jsps
Comment passer Oracle Java Silver
Java: Comment envoyer des valeurs du servlet au servlet
Comment passer la valeur à un autre écran
[Spring MVC] Comment transmettre des variables de chemin
Comment basculer entre plusieurs versions de Java
Comment utiliser la portée et le traitement des passes (servist)
[ruby] Comment recevoir la valeur de l'entrée standard?
Ruby Comment convertir entre les majuscules et les minuscules
Comment utiliser Struts2 * Spring Framework (plugin Spring) Version de juin 2017
Comment transmettre des informations de pixels d'image de manière native depuis Unity
Comment développer OpenSPIFe
Comment appeler AmazonSQSAsync
Comment écrire des rails
Comment utiliser rbenv
Comment utiliser with_option
Comment utiliser java.util.logging
Comment utiliser la carte
Étapes de déploiement de Struts 2.5.8
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment installer Docker
Comment désinstaller Rails
Comment installer docker-machine
[Comment utiliser l'étiquette]
Comment faire un pot ombré
Comment écrire docker-compose
Comment utiliser l'identité
Comment utiliser le hachage
Comment écrire Mockito
Comment créer docker-compose
Comment installer MySQL
Comment écrire un fichier de migration
Comment construire android-midi-lib
Comment utiliser Dozer.mapper
Comment utiliser Gradle
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Comment utiliser Map
Comment repousser la barre oblique \
Comment concaténer des chaînes
Comment éviter les conflits entre les modules JBoss et les bibliothèques d'applications
Comment passer un objet à Mapper dans MyBatis sans passer par un argument
Différence entre Java et JavaScript (comment trouver la moyenne)
Comment obtenir des valeurs en temps réel avec TextWatcher (Android)
[Rails] Différentes différences entre redirect_to et méthode de rendu et méthode de sortie de la méthode de rendu
Différences dans la gestion des chaînes entre Java et Perl
[Rails 5] Comment utiliser gem gon ~ Comment passer des variables de Rails à JS ~
Comment basculer dynamiquement entre FIN et RST dans Netty