• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Używanie w pliku .html bezpośrednio danych z sesji czy np. poprzez model

Object Storage Arubacloud
0 głosów
150 wizyt
pytanie zadane 20 kwietnia 2017 w Java przez Jonki Dyskutant (8,180 p.)
edycja 20 kwietnia 2017 przez Jonki

Chodzi o to co lepiej wygląda i co jest szybsze. Np. podczas gdy chcę wyświetlić stronę do edycji profilu

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:if="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>My application!</title>

    <meta name="description" content="My first application in Spring MVC">
    <meta name="author" content="Jonki!">

    <link rel="stylesheet" th:href="@{/resources/bootstrap/css/bootstrap.min.css}"/>
    <link rel="stylesheet" th:href="@{/resources/bootstrap/css/navbar.css}"/>
    <script th:src="@{/resources/bootstrap/js/bootstrap.min.js}"></script>
    <script th:src="@{/resources/bootstrap/js/jquery.min.js}"></script>
    <script th:src="@{/resources/bootstrap/js/scripts.js}"></script>
</head>
<body>
<div class="container-fluid">
    <div class="row">
        <div class="col-md-12">

            <div data-th-replace="/include/navbar::navbar" th:with="loginStatus=${loginStatus}"></div>

            <div class="container" style="padding-top: 60px;">
                <h1 class="page-header">Edit Profile</h1>
                <div class="row">
                    <th:block th:if="${invalidData}">
                        <div class="alert alert-dismissable alert-danger">

                            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">
                                ×
                            </button>
                            <h4>
                                Error!
                            </h4> <strong>Error!</strong> Only letters and numbers!
                        </div>
                    </th:block>
                    <th:block th:if="${successData}">
                        <div class="alert alert-dismissable alert-success">

                            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">
                                ×
                            </button>
                            <h4>
                                Success!
                            </h4> <strong>Success!</strong> Data has been fixed!
                        </div>
                    </th:block>
                    <!-- left column -->
                    <div class="col-md-4 col-sm-6 col-xs-12">
                        <div class="text-center">
                            <img src="##############" class="avatar img-circle img-thumbnail" alt="avatar">
                            <h6>Upload a different photo...</h6>
                            <input type="file" class="text-center center-block well well-sm">
                        </div>
                    </div>
                    <!-- edit form column -->
                    <div class="col-md-8 col-sm-6 col-xs-12 personal-info">
                        <h3>Personal info</h3>
                        <form th:action="@{/user/settings/changeBasicData}" th:object="${changeBasicDataDTO}" method="POST" class="form-horizontal" role="form">
                            <div class="form-group" th:classappend="${#fields.hasErrors('name') ? 'has-error' : null}">
                                <label class="col-lg-3 control-label">Name:</label>
                                <div class="col-lg-8">
                                        <input th:name="name" class="form-control" type="text" th:value="${session.user.name} != null ? ${session.user.name} : ''" th:placeholder="(${session.user.name} == null or ${session.user.name.length() == 0}) ? 'Name' : ''">
                                </div>
                            </div>
                            <div class="form-group" th:classappend="${#fields.hasErrors('secondName') ? 'has-error' : null}">
                                <label class="col-lg-3 control-label">Second name:</label>
                                <div class="col-lg-8">
                                        <input th:name="secondName" class="form-control" type="text" th:value="${session.user.secondName} != null ? ${session.user.secondName} : ''" th:placeholder="(${session.user.secondName} == null or ${session.user.secondName.length() == 0}) ? 'Second name' : ''">
                                </div>
                            </div>
                            <div class="form-group" th:classappend="${#fields.hasErrors('lastName') ? 'has-error' : null}">
                                <label class="col-lg-3 control-label">Last name:</label>
                                <div class="col-lg-8">
                                        <input th:name="lastName" class="form-control" type="text" th:value="${session.user.lastName} != null ? ${session.user.lastName} : ''" th:placeholder="(${session.user.lastName} == null or ${session.user.lastName.length() == 0}) ? 'Last name' : ''">
                                </div>
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Sex:</label>
                                <div class="col-lg-8">
                                    <div class="ui-select">
                                        <select th:name="sex" id="sex" class="form-control">
                                            <th:block th:if="${session.user.sex} == null">
                                                <option value="" disabled selected>Select your option</option>
                                                <option th:name="male" value="male">male</option>
                                                <option th:name="female" value="female">female</option>
                                            </th:block>
                                            <th:block th:unless="${session.user.sex} == null">
                                                <th:block th:if="${session.user.sex == 'male'}">
                                                    <option th:name="male" value="male" selected>male</option>
                                                    <option th:name="female" value="female">female</option>
                                                </th:block>
                                                <th:block th:if="${session.user.sex == 'female'}">
                                                    <option th:name="male" value="male">male</option>
                                                    <option th:name="female" value="female" selected>female</option>
                                                </th:block>
                                            </th:block>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="form-group">
                                <label class="col-md-3 control-label"></label>
                                <div class="col-md-8">
                                    <button type="submit" class="btn btn-success btn-lg" id="btnSignIn">
                                        Save Changes
                                    </button>
                                    <span></span>
                                    <input class="btn btn-default" value="Cancel" type="reset">
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>
</body>
</html>

to dane mojego konta wyświetlam za pomocą obiektu sesji czyli np. 

session.user.name

i właśnie nie jestem pewien czy jest to odpowiedni sposób. Również mógłbym to zrobić poprzez dodanie obiektu z sesji najpierw do modelu

model.addAttribute("user", session.getAttribute(user));

i wtedy mógłbym po prostu odnosić się do obiektu user, a nie sesji. Albo np. te alerty. Utworzyć np. tylko jeden alert, a do modelu podawać jakiej klasy ma być ten alert i jaki ma pokazać tekst? Jak uważacie? Które sposoby są lepsze? Przy wielu takich wrzutach na model, kod java trochę były tym zawalony.

1 odpowiedź

0 głosów
odpowiedź 21 kwietnia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)

Drugi sposób jest sensowniejszy, tymbardziej jeżeli Model ma przyszłości mieć więcej ficzerów.

Utworzyć np. tylko jeden alert, a do modelu podawać jakiej klasy ma być ten alert i jaki ma pokazać tekst?  

A czym właściwie jest ten alert? 

Btw. Divicjonizm wali po oczach.

Podobne pytania

0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 13 czerwca 2017 w Java przez Jonki Dyskutant (8,180 p.)
+1 głos
1 odpowiedź 371 wizyt
0 głosów
2 odpowiedzi 1,280 wizyt
pytanie zadane 23 stycznia 2018 w Java przez niezalogowany

92,539 zapytań

141,382 odpowiedzi

319,480 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...