7's workspace

業務外にSpringBootを使ってWebアプリを完成させるまでの記録

【第4回】画面遷移②

パスの管理をまとめる

前回は、一通りの画面遷移ができるよう Controllerとhtmlファイルを作成しました。

その時に気になるのがパスです。

パスは開発中に変更がある可能性が高いので

管理しやすいように一つのクラスにまとめておきましょう。

poi
├─ src/main/java
│   └─ poi
│        ├─ constant
│        │    └─  UrlConstant.java

(省略)

constant(定数)パッケージを作り、

その中に"UrlConstant.java"を作成しました。

主に「画面」「コントローラ」で分けて、

さらに一般用・会員用・エラー用に分けています。

一部抜粋です。

public final class UrlConstant {

    /** 画面. */
    public static class Page {

        private static final String MEMBER = "member";

        private static final String GENERAL = "general";

        /** 会員. */
        public static class Member {

            /** ログイン画面. */
            public static final String LOGIN = MEMBER + "/login";
            /** TOP画面(検索). */
            public static final String TOP = MEMBER + "/top";

    /** 一般. *
                       ・・・


  (省略)



    /** コントローラー. */
    public static class Controller {

        public static final String MEMBER = "/member";

        public static final String GENERAL = "/general";

        /** 会員. */
        public static class Member {

            /** ルート */
            public static final String ROOT = MEMBER + "/";

            /** ログイン画面. */
            public static final String LOGIN = MEMBER + "/login";

    /** 一般. */
                       ・・・


  (省略)


このようにまとめておくと、

Controllerの記述が変わります。

【前回のRegisterController】

@Controller
public class RegisterController {
    @RequestMapping(value = "/general/register", method=RequestMethod.POST)
    public String register() {
        return "general/register";
    }

【今回のRegisterController】

@Controller
public class RegisterController {
    @RequestMapping(value = UrlConstant.Controller.General.REGISTER, method = RequestMethod.POST)
    public String register() {
        return UrlConstant.Page.General.REGISTER;
    }

定数の部分にカーソルを当てると、

該当のパスが表示されます。

修正したい時は、

「command + クリック」でUrlConstant.javaに飛んで

修正すればスムーズです。

コンテキストパスの設定

話が飛びますが、

コンテキストパスを、プロパティファイルに設定しておきます。

前回までは初期表示(index.htmlの表示)する"GeneralIndexController.java"のパスは

@RequestMapping("/poi")

となっていて、

アクセスする時は「localhost:8080/poi/」にアクセスしていました。

コンテキストパスも変更がある可能性があるので、

コードの外に出しておくとよいでしょう。

application.propertiesに、以下のように記述します。

server.port=8080
server.session.timeout=900
server.contextPath=/poi

ここにコンテキストパスを設定し、

先ほどの"GeneralIndexController.java"のパスは

@RequestMapping(value = UrlConstant.Controller.General.ROOT, method = RequestMethod.GET)

に変更します。

先ほどのUrlConstantで、一般のルートを/general/ に設定したので、

アクセスする時は「localhost:8080/poi/general/」にアクセスしましょう。

設定ファイルの書き方はこちらを参考に。

https://meihaogit.github.io/java/2016/09/01/Spring-boot.html

https://www.slideshare.net/makingx/grails-30-spring-boot

さて、次回は新規登録画面の作成です。

DBの設定の話になるかもしれません。

では今回はこの辺で。