菜鸟升级---struts2学习第五天--关于struts2的拦截器和struts2的标签库

struts2拦截器

拦截器Interceptor和过滤Filter的区别

过滤器过滤的是请求方面的东西,范围比较广泛,比较粗糙,拦截器主要管action的跳转和访问,更加注重细节。

拦截器的自定义以用户登陆为例

1,创建一个类继承extends类AbstractInterceptor或者继承Implements接口Interceptor

继承MethodFilterInterceptor类
实现doIntercept方法返回值是一个ActionInvocation
public class interceptorDemo1  extends MethodFilterInterceptor{
protected String doIntercept(ActionInvocation invocation) throw Extecption{
判断session中是否存在数据

1,获得数据

User existUser=(User)ServletActionContect.getRequset().getSession().getAtrribute("existUser");

2,判断session中用户信息是否为空

if(existUser==null){
        没有登陆
            给出提示信息回到登陆页面
                获得正在执行的Action

ActionSupport action=invocation.getAction();
执行addActionError方法在jsp页面显示信息
action.addActionError(“没有登陆,没有访问权限”);
return action.LOGIN;
}
else{
已经登陆
return invocation.invoke();放行
}
return null;
}
}

3配置xml

在package中添加拦截器或者拦截器栈
添加拦截器
interceptors>
interceptor name=”拦截器的名字” class=”路径.路径”> /interceptor>
有几个配几个
/interceptors>
添加拦截器栈,struts2如果自定义拦截器就不会执行默认的拦截器了,所以就需要手动添加
interceptor-stack name=”栈名”>
interceptor name=”拦截器名” class=”路径”/>
struts2的默认拦截器interceptor name=”defaultStack”/>
/interceptor-stack>

4在Action中配置拦截器或拦截器栈

引入拦截器:
package>
action>
interceptor-ref name=”拦截器的名字”>
interceptor-ref name=”defaultStack”>
引入拦截器栈:
package>
action>
interceptor-ref name=”拦截器栈的名字”>

4在Action中配置那些方法不被拦截

<interceptor-ref name="拦截器名">
    <param name="excludeMethods">方法名逗号隔开可以写多个方法</param>
</interceptor>

struts2的标签库

常用标签

if,property,date,debug

UI标签

用UI标签方便数据回显

form表单

在jsp页面的form1表单中的target属性值可以改变页面跳转的方式

默认是_self在自己页面打开
_ blank新弹出一个新窗口,
_parent在父窗口打开

textfield文本框

radio单选框

checkboxlist复选框

select下拉列表

textarea文本域

hidden隐藏值

submit提交按钮

s:form action=”” method=”” theme=”别卵用这个”>
s:textfield name=”name” lable=”文本框在jsp页面显示的名字”/>
s:textfield name=”password” lable=”密码”/>
s:radio list=”{‘男’,’女’}” name=”sex” label=”性别”/>
s:select list=”{‘北京’,’上海’,’韩国’}” lable=”city” lable=”籍贯” headerKey=”” headerValue=”-请选择”/>
s:checkboxlist list=”#{‘basketball’:’篮球’,’football’:’足球’,’volleyball’:’排球’}” name=”hobby” lable=”爱好”/>
s:textarea name=”info” cols=”6” rows=”3” label=”介绍” value=”文本域的值存放位置”>/textarea>文本域
s:hidden name=”id” value=”隐藏区域的值”/>
s:submit name=”” value=”提交”/>
/s:form>

小碎的struts2 知识点

可以用action类实现接口ModelDriven来完成从jsp页面接收数据

ActionSupport里面有很多方法ActionError: this.addActionError(“用户名或者密码错误”);事例是表示当用户登陆信息错误时回显在jsp页面的信息
FieldError:输入类型错误
ActionMessage:

一般放用户登陆成功需要跳转时result的type需要设置为redirect重定向类型

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

qq_42799000

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

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

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

打赏作者

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

抵扣说明:

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

余额充值