1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】strutsの仕組みが段々と分かってきたぞ✨

Last updated at Posted at 2024-06-15

はじめに

新卒で弊社に入社し早4ヶ月。

研修が終わり最初の案件に参画してから早2か月が経とうとしています。

現在の案件ではstrutsを使用しており、最初は訳も分からず時間を浪費するばかりでした。
作業を重ねるうちに段々と構造というか、仕組みというか…が分かってきたので備忘録として書き残します。

後から見返して、加筆修正していくつもりではあります!一応!
以下の内容はhttps://qiita.com/ebichan_88/items/aaae17e72d068517f33fを参考にしてます。

目次

1.構造
2.struts-config
3.jspファイル
4.処理するJavaファイル
5.データを扱うJavaファイル
6.値を格納したJava→jspに値を渡す
7.まとめ

構造

strutsは大きくわけて

    struts-config.xml
    画面に表示させるjspファイル
    実際に処理を行うjavaファイル
    データを格納するjavaファイル
を用いて一つの画面を作ってるようです。

struts-config

struts-config.xmlは遷移先の画面と実行するメソッドを指定したものです!

(最初の数週間はこれを教えてもらっても「ぽかーん」って感じでした…)

sturuts-config.xml
<actioin
    path="/example.do"
    type="example_type"
    name="exampleForm"
    scope="request"
    varidate="true">
<set-propertty name="entity" value="entity:◯◯.◯◯◯.example#method" />
<forward name="success" path="index.jsp">

ここで特に重要になるのは、pathset-propertyforwardです!

path

pathはjsp等で指定された際に、このアクションが呼び出されるための印みたいなものです。(後述します。)

set-property

set-propertyでは、処理を行うJavaファイルとメソッドを指定します。

先ほどの例で行くとJavaファイルがexample.Javaになり、使用するメソッドはmethodになります。

forward

forwardは遷移先の画面を指定します。

name="success"が指定されてたら処理が成功したらpathの遷移する。

name="fail"なら失敗したときの遷移先になるっぽいです。

jspファイル

jspファイルではformとactionを用います。

example_1.jsp
<html:form action="/example.do"></html:form>

これで指定したactionを持つstruts-configが呼び出され、form内で入力した値が渡されます。

処理するJavaファイル

struts-config.xml
<set-propertty name="entity" value="entity:◯◯.◯◯◯.example#method" />

先ほどのstruts-configで指定されたJavaメソッドが呼び出されます。

example.java
public example_data method(){
    example_data entity = new example_data();
    //色々処理する
    return entity;
}

ここで処理を行って最終的にデータを扱うクラスにそのデータをセットし、returnします。

データを扱うJavaファイル

特にありません。データを格納するクラスです。オブジェクトを作っておきます

example_data
public class example_data{
    private String ex_1;
    private String ex_2;
    //こんな感じ
    //コンストラクタ設定
    //ゲッター、セッター設定
}

先ほどの処理を行っているメソッドによって、このクラスに値がセットされます。

値を格納したJava→jspに値を渡す

データを格納したはいいものの、それをどうやってjspまで持ってきて表示させるんだ!

3週間ぐらいそう思い続けてました…

やらないといけないことは、use-beanを指定してあげるということです。

example
<jsp:useBean id="entity" scope="request" class="××.×××.example_data"/>

classにデータ格納したJavaクラスを指定してあげます。
すると、例えば

example
<html:text name="entity" property="example_1">

これでuseBeenでentityに設定したデータクラスのexample_1というフィールドの値が表示されるようです。

まとめ

以上のような処理を通して、1つの画面が表示されるまでいきます。

struts-configが操縦桿

Javaは処理を行うものと、データを格納するだけのもの
そして表示するjsp

こんな感じのイメージになります。

(自分的には分かりやすく書いたつもりなんでが、どうなんでしょうねぇ…)

…これ、研修でやったMVCモデルとかいうやつじゃね?!ってなりました。

ほんとに実際に手を動かして体験しないと理解できないこと多いですね。これからも精進です!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?