Thẻ if và else trong Struts 2



Các thẻ này thực hiện việc điều khiển luồng cơ bản như trong mọi ngôn ngữ. Thẻ if có thể được sử dụng với chính nó hoặc với thẻ else if và/hoặc với một hoặc nhiều thẻ else.

Chương này chúng ta cùng tìm hiểu về thẻ if và else và trình làm việc của nó trong Struts 2 thông qua ví dụ minh họa dưới đây.

Tạo lớp Action

package com.vietjack.struts2;

public class HelloWorldAction{
   private String name;

   public String execute() throws Exception {
      return "success";
   }
   
   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

Tạo các thành phần View

index.jsp có nội dung sau:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
   <h1>Hello World From Struts2</h1>
   <form action="hello">
      <label for="name">Ban chon mot name</label><br/>
      <select name="name">
         <option name="Hoang">Hoang</option>
         <option name="Nam">Nam</option>
         <option name="Mark">Mark</option>
      </select>
      <input type="submit" value="Xin chao!"/>
   </form>
</body>
</html>

HelloWorld.jsp để minh họa sự sử dụng của các thẻ if, elseelseif:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Vi du ve the If va Else</title>
</head>
<body>
<b>Vi du ve the If va Else</b><br/>
<s:if test="name=='Hoang'">
   Ban da lua chon 'Hoang'. 
</s:if>
<s:elseif test="name=='Nam'">
   Ban da lua chon 'Nam'
</s:elseif>
<s:else>
   Ban da khong lua chon 'Hoang' hoac 'Nam'.
</s:else>
</body>
</html>

Tại đây, thẻ if trả về true nếu điều kiện được xác định trong thuộc tính test trả về true. Trong ví dụ trên, chúng ta đang so sánh nó với Hoang. Nếu tên là Hoang, thì thẻ trả về true và chúng ta in chuỗi, nếu không thì khối elseif được thực thi và nếu điều đó cũng không được thỏa mãn thì khối else được thực thi. Nói chung thì không có gì khác với các lệnh if, else if và else có trong ngôn ngữ Java.

Tạo các file cấu hình

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
   <package name="helloworld" extends="struts-default">
     
      <action name="hello" 
            class="com.vietjack.struts2.HelloWorldAction" 
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>

   </package>
</struts>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://java.sun.com/xml/ns/javaee" 
   xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   id="WebApp_ID" version="3.0">
   
   <display-name>Struts 2</display-name>
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
         org.apache.struts2.dispatcher.FilterDispatcher
      </filter-class>
   </filter>

   <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
</web-app>

Bạn thử chạy ứng dụng và kiểm tra kết quả.


control_tag_trong_struts_2.jsp


Tài liệu giáo viên