⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logic-present.jsp

📁 Spring +Web 的完整 MyEclipse 项目源码,使用者可以作为入门材料可以在此基础上深入学习
💻 JSP
字号:
<%@ page contentType="text/html;charset=GB2312" import="java.util.*,org.apache.struts.webapp.exercise.*,org.apache.struts.action.*,org.apache.struts.*"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<html:base/>
<title>Presence标记</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="white">

<h1>Presence标记</h1>

<p>Presence标记包括以下四个:</p>

<ul>
<li>&lt;logic:present&gt;</li>
<li>&lt;logic:present&gt;</li>
<li>&lt;logic:messagesPresent&gt;</li>
<li>&lt;logic:messagesNotPresent&gt;</li>
</ul>

<p>先讲&lt;logic:present&gt;和&lt;logic:present&gt;两个标记。它们的功能是用于判断所指定的对象是否存在。例如有以下代码
示例:</p>
<font class="CodeStyle">
&lt;%<br>
&nbsp;&nbsp;&nbsp;&nbsp;pageContext.setAttribute("ExistingString","teststring");<br>
%&gt;<br>
&lt;logic:present name="ExistingString"&gt;<br>
	ExistingString的值为&lt;bean:write name="ExistingString"/&gt;<br>
&lt;/logic:present&gt;
</font>

<p>上面的代码首先向pageContext对象中存入一个字符串对象,并命名为ExistingString。然后使用&lt;logic:present&gt;标记来判
断是否存在"ExistingString"这个变量。如果存在,就将ExistingString变量的值输出。以下是运行效果:</p>
<%
	pageContext.setAttribute("ExistingString","teststring");
%>
<logic:present name="ExistingString">
	ExistingString的值为<bean:write name="ExistingString"/>
</logic:present>

<p>&lt;logic:present&gt;和&lt;logic:present&gt;标记有以下几个常用属性:<p>
<p>header属性:判断是否存在header属性所指定的header信息。</p>
<p>parameter属性:判断是否存在parameter属性指定的请求参数。</p>
<p>cookie属性:判断cookie属性所指定的同名cookie对象是否存在。</p>
<p>name属性:判断name属性所指定的变量是否存在。</p>
<p>property属性:和name属性同时使用,当name属性所指定的变量是一个JavaBean时,判断property属性所指定的对象属性是否存在。</p>

<p>以下是一个使用name和property属性的例子:</p>
<font class="CodeStyle">
&lt;%<br>
&nbsp;&nbsp;&nbsp;&nbsp;TestPageBean testbean = new TestPageBean("name of testbean","value");<br>
&nbsp;&nbsp;&nbsp;&nbsp;pageContext.setAttribute("test",testbean);<br>
%&gt;<br>
&lt;logic:notPresent name="test" property="title"&gt;<br>
&lt;bean:write name="test" property="name"/&gt;<br>
&lt;/logic:notPresent&gt;<br>
</font>

<p>上面的代码首先创建了一个TestPageBean的对象,并将该对象存入pageContext对象中,命名为test。接下来,使用
&lt;logic:notPresent&gt;标记来判断test对象是否有一个属性叫title。如果有,则返回false,如没有,则返回true,并将test对象的
name属性显示出来。由于TestPageBean对象只有两个属性,一个是name,一个是value。所以,title属性并不存在。运行效果如下所示:</p>
<%
	TestPageBean testbean = new TestPageBean("name of testbean","value");
	pageContext.setAttribute("test",testbean);
%>
<logic:notPresent name="test" property="title">
<bean:write name="test" property="name"/>
</logic:notPresent>

<hr>
<p>接下来说一下&lt;messagePresent&gt;标记和&lt;messageNotPresent&gt;标记。这两个标记是来判断是否在request内存在特定的
ActionMessages或ActionErrors对象。它们有几个常用的属性:</p>
<p>name属性:指定了ActionMessages在request对象内存储时的key值。</p>
<p>message属性:message属性有两种取值。当其为true时,表示使用Globals.MESSAGE_KEY做为从request对象中获取ActionMessages的key
值,此时无论name指定什么都无效;当其为false时,则表示需要根据name属性所指定的值做为从request对象中获取ActionMessages的key
值,倘若此时未设置name属性的值,则使用默认的Globals.ERROR_KEY。</p>
<p>property属性:指定ActionMessages对象中某条特定消息的key值。</p>

<p>以下是一段代码示例:</p>
<font class="CodeStyle">
&lt;%<br>
&nbsp;&nbsp;&nbsp;&nbsp;ActionMessages messages = new ActionMessages();<br>
&nbsp;&nbsp;&nbsp;&nbsp;messages.add("message1",new ActionMessage("html.errors.error1"));<br>
&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(Globals.MESSAGE_KEY,messages);<br>
%&gt;<br>
&lt;logic:messagesPresent message="true" property="message1"&gt;<br>
所查找的ActionMessage存在。<br>
&lt;/logic:messagesPresent&gt;<br>
</font>

<p>在上面的代码中,首先创建了一个ActionMessages对象,然后向其中添加了一个ActionMessage,将其命名为message1。再把这个
ActionMessages对象存入requeset对象中,命名为Globals.MESSAGE_KEY。接下来,将&lt;messagePresent&gt;标记的message属性设为
true(即默认在request中查找key值为Globals.MESSAGE_KEY的对象),property属性的值设为message1,判断是否存在这样一个ActionMessage
对象,倘若存在,则输出相应文本。运行效果如下所示:</p>

<%
	ActionMessages messages = new ActionMessages();
	messages.add("message1",new ActionMessage("html.errors.error1"));
	request.setAttribute(Globals.MESSAGE_KEY,messages);	
%>
<logic:messagesPresent message="true" property="message1">
所查找的ActionMessage存在。
</logic:messagesPresent>

<p>

<a href="index.jsp">返回主页面</a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -