我正在努力使用 JSP 和 XSL 技术。下面是我在别人的项目中看到的代码,比较混乱。据我了解,这家伙使用 xsl 将 jsp 像 css 一样渲染为 html。有必要写这样的代码吗?我认为生成 XSL 是为了转换 XML,而不是做 CSS 所做的事情。我希望有人能进一步向我解释,这将是一个很大的帮助。提前致谢!
登录操作.jsp
<%@page contentType="application/xml" import="uts.wsd.*" errorPage="error500.jsp"%><?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="loginAction.xsl"?>
<!-- Implement page styles + elements from .xsl -->
<%
//get objects from .xml files
String filePath = application.getRealPath("WEB-INF/users.xml"); %>
<jsp:useBean id="usersApp" class="uts.wsd.UsersApplication" scope="application">
<jsp:setProperty name="usersApp" property="filePath" value="<%=filePath%>"/>
</jsp:useBean>
<page>
<%
//get needed data
String email = request.getParameter("email");
String password = request.getParameter("password");
//User user = null;
%>
<%
//init login method from java class
User user = usersApp.getUsers().login(email, password);
if (user != null) { //login is successful
session.setAttribute("user", user);
response.sendRedirect("index.jsp");
%>
<success />
<%
//if login is not successful
} else { %>
<fail />
<% } %>
</page>
失败和成功标签如何在此页面中工作?是用来匹配xsl的吗?
登录操作.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" />
<xsl:variable name="email" select="email" />
<xsl:variable name="password" select="email" />
<xsl:template match="page">
<html>
<head>
<style>
......
</style>
<title>Logging In...</title>
</head>
<body>
<!-- Page layout -->
<div class="heading">
You are not logged in <br />
<a href="index.jsp">Index</a> | <a href="register.jsp">Register</a>
<br />
</div>
<br />
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="success">
<br />
<hr />
<h1>Login successful.</h1>
<p>Click <a href="index.jsp">here</a> to search through available articles.</p>
</xsl:template>
<xsl:template match="fail">
<hr />
<h1 class="h1">Email and/or Password incorrect.</h1>
<p>Click <a href="login.jsp">here</a> to try again.</p>
<br />
<p>Click <a href="register.jsp">here</a> to create an account.
</p>
</xsl:template>
</xsl:stylesheet>
你写了:
这家伙用xsl来渲染jsp
我换一种说法:
该名.jsp文件中包含的应用程序逻辑:
但是这个文件不包含任何实际的 HTML 代码。相反,它包含以下“标记”:
<page>
- 这里放了 HTML、HEAD 和 BODY 标签以及正文内容的初始部分,在两种情况下都要渲染(无论是否有登录用户)。<success>
和<fail>
- 在这里放置一段 HTML 代码以在每种情况下呈现。</page>
- 这里放了 BODY 和 HTML 的结束标签。请注意,<success>
和<fail>
都在if ... then ... else ...
一段 JSP 代码中。
这可确保根据当前用户的存在,呈现第一段或第二段 HTML 代码,但不能同时呈现两者。
在.jsp和.xsl文件之间对页面代码进行分区是一种分离关注点并允许两个 IT 人员能够同时工作的方法:
这在某种程度上类似于 MVC 范式:
使用 XSL 转换来转换 JSP 文件是一种将这两个部分合并到一个页面中以呈现给浏览器用户的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句