pure HTML
;でサーバー データにアクセスする方法はありません。TagLibraries
inside aの代替JSP
はではなく、HTML
古い (そして悪い) Scriptlet
s です。
最後にすべてが に変換されHTML
ますが、ビジネス データを処理できるようにするために中間層が必要です。
でサーバー側の値をどのように読み取ることができますHTML
か?
簡単に言えば:
かつては でServlet
、そのPrintWriter
は output にHTML
:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String myServerSideValue = "StackOverflow";
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<head>");
writer.println("<title>Wait, what... a Servlet in 2013?!</title>");
writer.println("</head>");
writer.println("<body>");
writer.println("<span>Hello " + myServerSideValue + "</span>");
writer.println("</body>");
writer.println("</html>");
}
明らかに悪夢であり、賢い人がJSP
s とScriptlet
sを発明するようになりました。
<html>
<head>
<title>Wait, what... Scriptlets in 2013?!</title>
</head>
<body>
<span>Hello <%= myServerSideValue %> </span>
</body>
</html>
次に、次TagLib
のようなものJSTL
が出てきました:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>you <i>may</i> still needs JSTL with, for example, Spring MVC</title>
</head>
<body>
<span>Hello <c:out value="myServerSideValue" /> </span>
</body>
</html>
そしてついに私たちにWebWork / Struts
もたらされましたOGNL
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>you still needs JSTL with, for example, Spring MVC</title>
</head>
<body>
<span>Hello <s:property value="myServerSideValue" /> </span>
</body>
</html>
OGNL
内部タグの使用Struts2
は に似ていますがJSTL
、より強力で、いくつかの方法 ( 、など)で完全に統合されています。Struts2
Validation
Theming
この例は単純すぎて、なぜinsteadまたは otherをStruts2 Tags
使用する必要があるのか を理解できないかもしれませんが、より複雑な現実世界のシナリオになると、この優れたツールの使用法を理解し、最大限に活用できるようになるでしょう。Scriptlets
TagLibs