struts2_条件查询、删除、自定义异常

1. 条件查询
<1>sql语句生成

String sql = "select * from s_user where 1=1 ";
List<Object> params=new ArrayList<Object>();
String username = user.getUserName();
if (username != null && username.trim().length() > 0) {
        sql += " and userName like ?";
        params.add("%"+username+"%");
}
String sex = user.getSex();
if (sex != null && sex.trim().length() > 0) {
        sql += " and sex=?";
        params.add(sex);
}
String education = user.getEducation();
        if (education != null && education.trim().length() > 0) {
        sql += " and education=?";
            params.add(education);
}

String isupload = user.getIsUpload();
                if ("1".equals(isupload)) {
                    sql += " and filename is not null";
                } else if ("2".equals(isupload)) {
                    sql += " and filename is null";
                }

<2>参数怎样传递?
 创建一个List,在每一次判断时,直接将参数添加到集合中,最后将集合转换成Object[],做为参数传递到query方法中。

QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());

return runner.query(sql, new BeanListHandler<User>(User.class),params.toArray());

2. 删除操作
<1>修改JSP页面上的链接标签
原标签:

<a href="${pageContext.request.contextPath}/user/list.jsp?userID=15">
    <img src="${pageContext.request.contextPath}/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
</a>

使用struts2标签修改:

<1>第一种方式
<s:a href="路径">

<2>第二种方式
<s:a action="" namespace="">
    <s:param name="" value="">
</s:a>

<3>第三种方式
<s:url>标签来定义一个路径
<s:a href="url">来导入url值

<s:url namespace="/" action="user_del" var="delUrl">
        <s:param name="id" value="%{#u.userID}"/>
</s:url>

<s:a href="%{#delUrl}">
        <img src="${pageContext.request.contextPath}/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
</s:a>

3. 异常处理
 对于action中的操作,出现问题,直接抛出自定义异常。
 在struts.xml文件中:

//这就可以让特定的异常,跳转到自定的页面。
<global-exception-mappings>
    <exception-mapping result="login"
            exception="cn.itcast.user.exception.FindByIdException">
    </exception-mapping>
</global-exception-mappings>

 struts2,默认加载的18个拦截器的第一个是exception这个拦截器,它没有做任何操作,直接放行,,只是它将 invocation.invoke()操作使用try-catch进行了处理。
其它的拦截器,或是action只要向外抛出异常,exception拦截器就会将其捕获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值