struts2值栈、struts2标签、ONGL表达式、EL表达式、JSTL表达式、jsp标签

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/superit401/article/details/83994286

1.struts2值栈

参考:https://blog.csdn.net/superit401/article/details/83994149

(1) ValueStack是Struts2的一个接口,字面意义为值栈,OgnlValueStack是 ValueStack的实现类,客 户端发起一个请求,struts2架构会创建一个action实例同时创建一个OgnlValueStack值栈实例, OgnlValueStack贯穿整个Action的生命周期,struts2中使用OGNL将请求Action的参数封装为对象存储 到值栈中,并通过OGNL表达式读取值栈中的对象属性值。

(2)后端java获取值栈对象并赋值:

public class ValueStackDemoAction extends ActionSupport {
     
    public String execute() throws Exception {
        //1 获取值栈对象
        ActionContext context = ActionContext.getContext();
        ValueStack stack = context.getValueStack();

        //2 调用值栈对象中的push方法
        stack.push("abcd"); 
        return "success";
    }
}

2.struts2标签

在jsp头部,加入<%@ taglib uri="/struts-tags" prefix="s" %>

参考:https://www.w3cschool.cn/struts_2/struts_control_tags.html

http://www.cnblogs.com/yw-ah/p/5760540.html

https://blog.csdn.net/benhuo931115/article/details/54378437

struts2标签分为:

控制标签:if和else标签

<s:if test="%{false}">
    <div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
    <div>Will Be Executed</div>
</s:elseif>
<s:else>
    <div>Will Not Be Executed</div>
</s:else>

iterator标签:

<s:iterator value="days">
  <p>day is: <s:property/></p>
</s:iterator>

。。。

数据标签

action标签:

<s:action name="actionTagAction!specialMethod" executeResult="true" />

include标签:

<s:include value="myJsp.jsp">
   <s:param name="param1" value="value2" />
   <s:param name="param2" value="value2" />
</s:include>

bean标签:

<s:bean name="org.apache.struts2.util.Counter" var="counter">
   <s:param name="first" value="20"/>
   <s:param name="last" value="25" />
</s:bean>

property标签:

<s:property value="myBeanProperty" default="a default value" />

set标签:

<s:set name="myenv" value="environment.name"/>

表单标签

。。。

Ajax标签

。。。

3.ONGL表达式

OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts 2框架使用OGNL作为默认的表达式语言。

  主要用于struts框架中(目前在别的地方还没接触到)

  就是<s:property value="" />  value里面的内容,就叫ONGL表达式;

参考:https://blog.csdn.net/superit401/article/details/83994149

如:

4.EL表达式

EL表达式是JSP 2.0(JavaEE1.4)规范中的一门技术 。若想正确解析EL表达式,需使用支持Servlet2.4/JSP2.0技术的WEB服务器。

EL表达式主要有下面四种功能:获取数据、执行运算、获取常用开发对象和调用java方法。

形式如:

<body>
<% 
         request.setAttribute("name","孤傲苍狼");
     %>
         <%--${name}等同于pageContext.findAttribute("name") --%>
         使用EL表达式获取数据:${name}
  
<h1>获取javabean的属性</h1><hr>
            <%
                Person p = new Person();
                p.setName("Lilei");
                p.setAge(17);
                pageContext.setAttribute("p",p);
             %>
             ${p.name }${p.age } ${p.name }

<h1>empty 运算符 : </h1><hr>
        <%
            String str = "aaaa";
            pageContext.setAttribute("str",str);
            List list = new ArrayList();
            list.add("");
            pageContext.setAttribute("list",list);
         %>
         ${empty str }
         ${empty list}
         ${empty pageScope }
<h1>逻辑运算</h1><hr>
        && and 
        ||  or
        !   not

        ${not (3>2 and 1<2 or 10>3) }

<%
        pageContext.setAttribute("name","wang");
        request.setAttribute("name","li");
       %>
        ${requestScope.name}

        ${param.name } ${paramValues.like[2] }${header["Accept-Language"] }
        ${cookie.JSESSIONID.name }${cookie.JSESSIONID.value }
        ${initParam.name2 }



</body>

参考:http://www.runoob.com/jsp/jsp-expression-language.html

5.JSTL表达式

参考:JSP 标准标签库(JSTL)http://www.runoob.com/jsp/jsp-jstl.html

核心标签是最常用的JSTL标签。引用核心标签库的语法如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
标签 描述
<c:out> 用于在JSP中显示数据,就像<%= ... >
<c:set> 用于保存数据
<c:remove> 用于删除数据
<c:catch> 用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if> 与我们在一般程序中用的if一样
<c:choose> 本身只当做<c:when>和<c:otherwise>的父标签
<c:when> <c:choose>的子标签,用来判断条件是否成立
<c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import> 检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach> 基础迭代标签,接受多种集合类型
<c:forTokens> 根据指定的分隔符来分隔内容并迭代输出
<c:param> 用来给包含或重定向的页面传递参数
<c:redirect> 重定向至一个新的URL.
<c:url> 使用可选的查询参数来创造一个URL

6.jsp标签

 1)内置标签(动作标签): 不需要在jsp页面导入标签

  2)jstl标签: 需要在jsp页面中导入标签

  3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签

(1)jsp内置标签

<jsp:forward />转发标签、<jsp:include/>包含标签、<jsp:pararm/>参数标签、

还有嵌入到html和js的写java代码的脚本片段:<% %>

声明:<%! %>

jsp表达式:<%=  %>

(2)JSTL标签,如5

(3)参考:https://www.cnblogs.com/fnz0/p/5662038.html


猜你喜欢

转载自blog.csdn.net/superit401/article/details/83994286
今日推荐