Struts2-2

Struts2标签入门

<%@taglib prefix="s" uri="/struts-tags"%>


<s:property value="msg"/>

<s:if test="表达式">
标签体
</s:if>
<s:elseif test="表达式">
标签体
</s:elseif> <!--允许出现多个elseif标签-->
<s:else>
标签体
</s:else>


<s:iterator var="singer" value="singerList" status="no">
<tr>
<td id="bor1" align="center"><s:property value="#no.count"/></td>
<td align="center"><s:property value="#singer.name"/></td>
<td align="center"><s:property value="#singer.sex"/></td>
<td align="center"><s:property value="#singer.date"/></td>
<td align="center"><s:property value="#singer.nationality"/></td>
<td id="bor2" align="center">
<a href="#">删除</a><a href="#">修改</a>
</td>
</tr>
</s:iterator>


<s:debug/>

标签判断字符串的时候外面用单引号,里面用双引号

Struts2标签合集

A:   
 
1. <s:a href=""></s:a>-----超链接,类似于html里的<a></a>   
2. <s:action name=""></s:action>-----执行一个view里面的一个action   
3. <s:actionerror/>-----如果action的errors有值那么显示出来   
4. <s:actionmessage/>-----如果action的message有值那么显示出来   
5. <s:append></s:append>-----添加一个值到list,类似于list.add();   
6. <s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajax   

B:   

1. <s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值   

C:   

1. <s:checkbox></s:checkbox>-----复选框   
2. <s:checkboxlist list=""></s:checkboxlist>-----多选框   
3. <s:combobox list=""></s:combobox>-----下拉框   
4. <s:component></s:component>-----图像符号   

D:   

1. <s:date/>-----获取日期格式   
2. <s:datetimepicker></s:datetimepicker>-----日期输入框   
3. <s:debug></s:debug>-----显示错误信息   
4. <s:div></s:div>-----表示一个块,类似于html的<div></div>   
5. <s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框   

E:   

1. <s:if test=""></s:if>   
2. <s:elseif test=""></s:elseif>   
3. <s:else></s:else>-----这3个标签一起使用,表示条件判断   


F:   


1. <s:fielderror></s:fielderror>-----显示文件错误信息   
2. <s:file></s:file>-----文件上传   
3. <s:form action=""></s:form>-----获取相应form的值   


G:   

1. <s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用   


H:   

1. <s:head/>-----在<head></head>里使用,表示头文件结束   
2. <s:hidden></s:hidden>-----隐藏值   

I:  

1. <s:i18n name=""></s:i18n>-----加载资源包到值堆栈   
2. <s:include value=""></s:include>-----包含一个输出,servlet或jsp页面   
3. <s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入   
4. <s:iterator></s:iterator>-----用于遍历集合   


L:   


1. <s:label></s:label>-----只读的标签   

M:   

1. <s:merge></s:merge>-----合并遍历集合出来的值   

O:   

1. <s:optgroup></s:optgroup>-----获取标签组   
2. <s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框   

P:   

1. <s:param></s:param>-----为其他标签提供参数  
struts2的s:param标签主要有两个属性name与value, 若想在value属性中输入直接量,则可以这样写:<s:param name="some" value="%{'user'}"/>, 也可以这样写:<s:paramname="some">user</s:param>。但如果直接赋值,这个值不是由Action动态生成的,而是自己指定的一个字符串,则只能用后者
 
2. <s:password></s:password>-----密码输入框   
3. <s:property/>-----得到'value'的属性   
4. <s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性   


R:   
  
1. <s:radio list=""></s:radio>-----单选按钮   
2. <s:reset></s:reset>-----重置按钮   


S:   

1. <s:select list=""></s:select>-----单选框   
2. <s:set name=""></s:set>-----赋予变量一个特定范围内的值   
3. <s:sort comparator=""></s:sort>-----通过属性给list分类   
4. <s:submit></s:submit>-----提交按钮   
5. <s:subset></s:subset>-----为遍历集合输出子集   


T:   

1. <s:tabbedPanel id=""></s:tabbedPanel>-----表格框   
2. <s:table></s:table>-----表格   
3. <s:text name=""></s:text>-----I18n文本信息   
4. <s:textarea></s:textarea>-----文本域输入框   
5. <s:textfield></s:textfield>-----文本输入框   
6. <s:token></s:token>-----拦截器   
7. <s:tree></s:tree>-----树   
8. <s:treenode label=""></s:treenode>-----树的结构   

U:   

1. <s:updownselect list=""></s:updownselect>-----多选择框   
2. <s:url></s:url>-----创建url

---------------------------------------------------------------------------
重写validate方法
对指定方法进行输入校验 格式 validateXxx()



public class GoodsAction extends ActionSupport {
public String add(){
System.out.println("添加了一个商品!");
return "add";
}
public String update(){
System.out.println("更新成功!");
return "update";
}
public String delete(){
System.out.println("删除了!");
return "delete";
}
//重写validate方法,执行任何一个方法后执行
public void validate(){
System.out.println("验证方法被调用了");
//this.addFieldError("err", "出错啦!");
}
//针对于方法的验证,执行指定方法后执行
public void validateAdd(){
System.out.println("进行了验证...");
}
}

<!-- 重写validate方法 -->
<package name="goods" namespace="/" extends="struts-default">
<action name="goods" class="com.chinasoft.action.GoodsAction">
<result name="add">index.jsp</result>
<result name="update">index.jsp</result>
<result name="delete">index.jsp</result>
</action>
</package>

---------------------------------------------------------------------------
拦截器

public class GoodsAction extends ActionSupport {
public String add(){
System.out.println("添加了一个商品!");
return "add";
}
public String update(){
System.out.println("更新成功!");
return "update";
}
public String delete(){
System.out.println("删除了!");
return "delete";
}
//重写validate方法,执行任何一个方法后执行
public void validate(){
System.out.println("验证方法被调用了");
//this. addFieldError("err", "出错啦!");
}
//针对于方法的验证,执行指定方法后执行
public void validateAdd(){
System.out.println("进行了验证...");
}
}

public class GoodsActionIntercator extends MethodFilterInterceptor {

@Override
protected String doIntercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("方法被拦截了");
return arg0.invoke();
}

}

public class HelloAction {
private String msg; //用来传递消息
private User user;

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

//创建一个执行方法
public String execute() {
String result="success";
if(!("admin".equals(user.getUsername()) && "admin".equals(user.getPassword()))){
result ="error";
msg="账号或密码错误";
}else{
msg="登录成功";
}
return result;
}
public String fun() {
System.out.println("fun方法被执行了");
return "fun";
}
}

public class HelloActionIntercator extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("执行了前置拦截");
String resule=arg0.invoke();
System.out.println("执行了后置拦截");
return resule;
}

}

<package name="hello" namespace="/" extends="struts-default">
<!-- 定义拦截器 -->
<interceptors>
<interceptor name="inter1" class="com.chinasoft.action.HelloActionIntercator"></interceptor>
<interceptor name="inter2" class="com.chinasoft.action.GoodsActionIntercator"></interceptor>
</interceptors>
<!-- 添加拦截器的ACTION -->
<action name="one" class="com.chinasoft.action.HelloAction" method="hello">
<result>/index.jsp</result>
<!-- 绑定拦截 -->
<interceptor-ref name="inter1"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
<!-- 方法拦截 -->
<action name="two" class="com.chinasoft.action.GoodsAction">
<result name="add">index.jsp</result>
<interceptor-ref name="inter2">
<param name="includeMethods">add</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>

与Struts2Review配套使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值