This section provides information about the following tags:
This section uses the Logic Matching page at /StrutsTaglibs/LogicMatch.do . The rendered page is shown in Figure 14.3. Figure 14.3. Logic Match page at /StrutsTaglibs/LogicMatch.do .
This page demonstrates a typical use of each of the tags. The source is shown in Listing 14.2. Listing 14.2 JSP File Demonstrating Use of Struts Logic Tags Looking for Substrings ( LogicMatch.jsp )<%@ page language="java" %> <%@ 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" %> <%@ page import="java.util.Enumeration" %> <html:html> <head> <title>Logic Match sample code</title> </head> <body bgcolor="white"> <h3>Logic Match sample code</h3> <p>This page provides examples of the following Struts LOGIC tags:<br> <ul> <li><logic:match></li> <li><logic:notMatch></li> </ul> <%-- Variables used on this page --%> <% request.setAttribute("authorName1", "James M. Turner"); request.setAttribute("authorName2", "Kevin Bedell"); %> <%-- The following section shows match and notMatch. --%> <logic:match name="authorName1" scope="request" value="ames"> <bean:write name="authorName1"/> has the string 'ames' in it. </logic:match> <logic:notMatch name="authorName1" scope="request" value="ames"> <bean:write name="authorName1"/> doesn't have the string 'ames' in it. </logic:notMatch> <BR> <logic:match name="authorName2" scope="request" value="ames"> <bean:write name="authorName2"/> has the string 'ames' in it. </logic:match> <logic:notMatch name="authorName2" scope="request" value="ames"> <bean:write name="authorName2"/> doesn't have the string 'ames' in it. </logic:notMatch> <BR> <logic:match name="authorName1" scope="request" value="ames" location="start"> <bean:write name="authorName1"/> starts with the string 'ames'. </logic:match> <logic:notMatch name="authorName1" scope="request" value="ames" location="start"> <bean:write name="authorName1"/> doesn't start with the string 'ames'. </logic:notMatch> <BR> <logic:match header="user-agent" value="Windows"> You're running Windows </logic:match> <logic:notMatch header="user-agent" value="Windows"> You're not running Windows </logic:notMatch> <BR> </body> </html:html> The logic:match and logic:notMatch TagsThese tags should be familiar to anyone who has ever used the String methods indexOf , endsWith , and startsWith . As with the comparison tags, you can specify name , header , parameter , or cookie as the source of the value to compare. However, unlike the comparison tags, a missing or null value throws a runtime exception. With no other arguments, match looks for the value attribute anywhere inside the string returned from the variable. If the location attribute is start , the variable must start with the value ; if it's end , the variable must end with the value . This example also shows a nonbean lookup for the variable. The last two examples use the user-agent header value to check whether the client is running Microsoft Windows. |