Struts2标签 逻辑标签和UI标签

JavaWeb 专栏收录该内容
83 篇文章 0 订阅

效果如下图:



先配置struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
          "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
          <package name="student" namespace="/" extends="struts-default">
                   <action name="student" class="star.july.ognl.OgnlDemo" method="set">
                             <result name="success">/struts2.jsp</result>
                   </action>
          </package>
 
</struts>

再创建Action类:

package star.july.ognl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlDemo extends ActionSupport{
    Student student;
    List list =new ArrayList();
    List<Student> ls = new ArrayList<Student>();
    public OgnlDemo(){
        list.add("小年");
        list.add("小黑");
        list.add("十品");
        list.add("傻鸟");
        
        ls.add(new Student("华为",2300));
        ls.add(new Student("小米",1900));
        ls.add(new Student("魅族",1300));
        ls.add(new Student("一加",1999));
    }
    
    
    //重点
    //存放到对象栈中 方法:getXxx()
    public List<Student> getList(){
        return ls;
        
    }

    //传到对象栈中使UI标签有默认选择
    public String getSex(){
        return "女";
    }
    
    //爱好的默认多选
    public List getHobby(){
        list.add("乒乓球");
        list.add("篮球");
        return list;
    }
    
    
    public void setStudent(Student student) {
        this.student = student;
    }
    
    public String set(){
//      student.setName("陈二狗");
        ActionContext ac = ActionContext.getContext();
        //自己放值
        ac.put("name", student);
        
        Map rp = (Map) ac.get("request");
        rp.put("name", student);
        Map<String, Object> session = ac.getSession();
        session.put("name", student);
        Map<String, Object> application = ac.getApplication();
        application.put("name", student);
        Map<String, Object> parameters = ac.getParameters();
        parameters.put("name", student);
        
        System.out.println(student);
        return SUCCESS;
    }
}


效果页面,重点!

struts2.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>title</title>
   
          <meta http-equiv="pragma" content="no-cache">
          <meta http-equiv="cache-control" content="no-cache">
          <meta http-equiv="expires" content="0">
          <!--
          <link rel="stylesheet" type="text/css" href="styles.css">
          -->
  </head>
 
  <body>
  <!-- Struts2标签使用 -->
          <!-- 页面逻辑标签 -->
          <%--
                   s:set
                             把变量定义到值栈中的映射栈
                             var:名称
                             value:值。默认执行ognl表达式
                             注意:
                             ognl表达式->字符串:加上引号:‘ognl表达式’
                             字符串->ognl表达式: %{字符串}
           --%>
          <s:set var="name"  value="'jack'"></s:set>
          <s:textfield value="%{#name}"></s:textfield><br/>
          
          
          <%--
                   s:property:从值栈取出数据(对象栈或者映射栈)
           --%>
           <s:property value="name"></s:property><br/> <%--输出jack --%>
          
          
           <%--
                    <s:if/><s:else if><s:else/>
            --%>
           
            <s:set var="grade" value="'78'">
            </s:set>
            <s:if test="#grade>=80&&#grade<=100">
                    优秀
            </s:if>
            <s:elseif test="#grade>=60&&#grade<80">
                    良好    <%--显示该值 --%>
            </s:elseif>
            <s:else >
                    不及格
            </s:else>
           
           
            <%--
                    s:iterator
                             原理:把value集合的数据取出,存储一个叫p变量(p变量放入映射栈的key)
                             value:执行ognl表达式
             --%>
             <br>
             <%--从对象栈中取值 --%>
             <s:iterator value="list" var="p">
                             手机:<s:property value="#p.name"/> ,价格<s:property value="#p.price"/><br>
             </s:iterator>
            
             <%--链接标签 --%>
             <a href="<s:url value='/ognl.jsp'/>">Ognl.jsp</a>
            
            
            
            
             <%--
                    struts2的UI标签
              --%>
              <s:form>
                    <%--
                             name:
                              1)作为input的name属性
                              2)数据回显。省略value=“ognl表达式”
                     --%>
                                      <s:textfield name="name" label="姓名:" ></s:textfield>      
                                      <s:password name="password" label="密码"></s:password>
                                       <%-- list:遍历项目,默认执行ognl表达式 --%>
                                       <%--单选按钮 --%>
                                       <%--默选要从action传来值 --%>
                                       <s:radio list="{'男','女'}" name="sex" label="性别:"></s:radio>
                                       <%--多选按钮 --%>
                                       <s:checkboxlist list="{'乒乓球','羽毛球','游泳','篮球'}" name="hobby" label="运动爱好"></s:checkboxlist>
                                       <s:select list="{'广东省','江苏省','黑龙江省'}" name="province" label="省份:"></s:select>
                                       <s:select list="#{'p1':'广东省','p2':'江苏省','p3':'黑龙江省'}" name="province" label="省份:"></s:select>
                                      
              </s:form>
             
          <s:debug></s:debug>
  </body>
</html>


  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

starjuly

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值