1、标签体系结构
(1)JSP脚本(https://www.cnblogs.com/zhai1997/p/11615737.html)
样式:<% java代码 %>、<%=java变量或表达式>思想是在jsp内部直接嵌入java代码,但是容易是jsp内部内容太多太乱。
(2)JSP动作标签(https://www.cnblogs.com/zhai1997/p/11617085.html)
简化了jsp脚本,已经定义好了可以直接使用,例如:forward标签,include标签。
(3)自定义标签(JSTL标签https://www.cnblogs.com/zhai1997/p/11625829.html、Struts2标签)
JSTL:core、sql、format、xml
2、Struts2标签
3、控制标签
(1)iterator标签(遍历)
创建一个Action向context中写入元素:
public String execute(){ List<String> list=new ArrayList<>(); list.add("aaa"); list.add("www"); list.add("ccc"); list.add("mmm"); ActionContext.getContext().put("list",list); return "success"; }
jsp:
<s:iterator value="#list"> <s:property></s:property> </s:iterator>
从list中取出元素,并显示在页面上。
运行结果:
(2)第二种方式:
<s:iterator value="#list" var="name"> <s:property value="#name"></s:property> </s:iterator>
(3)与数字结合:显示数字
<s:iterator begin="1" end="100" step="5"> <s:property></s:property> </s:iterator>
(4)else和if组成的判断语句:
<body> <s:if test="#list.size()==4"> 长度为4 </s:if> <s:elseif test="#list.size()==3"> 长度为3 </s:elseif> <s:else> 长度未知! </s:else> </body>
4、数据标签
(1)property标签:配合OGNL进行页面取值
<s:property value="#list.size()"></s:property>
结果为4.
5、表单标签
<s:form action="Action1" namespace="/" theme="xhtml" > <s:textfield name="name" label="用户名" ></s:textfield> <s:password name="password" label="密码" ></s:password> <s:radio list="{'男','女'}" name="gender" label="性别" ></s:radio> <s:textarea name="desc" label="个人简介" ></s:textarea> <s:submit value="提交" ></s:submit> </s:form>
6、非表单标签
表单:
<s:actionerror></s:actionerror>
Action:
public String execute(){ this.addActionError("今天是元宵节,节日快乐!"); return "success"; }
运行结果: