分类: Struts预览模式: 普通 | 列表
07-07
20

Exception:BeanUtils.populate&argument type mismatch

这个错误的原因多半是form表单中没有加enctype="multipart/form-data"而引起的

查看更多...

Tags: Exception

分类:Struts | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 1498
07-07
18

<html:multibox>全选与全不选的处理

关于<html:multibox>标签的再次理解,以下代码并没有多大实际用途,至少我是这么觉得。但从中可以看出,只要对象数组中的元素和标签中的value一一对象,那么复选框就是选中状态^_^

此种状态复选框全为不选:
<table border="1" width="100%"  >
         <tr>
          <td width = "200"></td>
            <td width="100%"><div align="center">
                <logic:iterate id="loop" name="arrays">
                    <div align="center">

查看更多...

Tags: multibox

分类:Struts | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 1128
07-07
12

一个完全标签的遍历过程

假设从Action中传回响应页面一个对象List集合,名为userlist。现在我们利用Sturts标签来作jsp页面的处理:
引用内容 引用内容
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title>
jsp1
</title>

查看更多...

Tags: 面试题

分类:Struts | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 744
07-07
04

struts标签里的logic:iterate indexId="ind"  从1开始

logic:iterate 中 indexId 的作用是取集合对象的下标,可是集合的下标大都是从0开始的,于是在用indexId的时候就会带来问题 序号也是从0开始的,这不符合普通用户的浏览习惯,其实做indexId+1 也不难,我用的方法如下:
<logic:iterate id="emps" indexId="indexid" name="EMPS" type="companypj.vo.EmployeeVO">
          <page:item nr="<%=i++%>">
            <table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" width="100%">
              <tr>
                <td width="14%">
                
                 <%=Integer.parseInt(indexid.toString()) + 1%>
                  ……

查看更多...

分类:Struts | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4378
07-06
26

Struts分页的多个实现 (后台分页)

Struts分页的一个实现

在Web应用程序里,分页总让我们开发人员感到很头疼,倒不是因为技术上有多么困难,只是本来和业务没有太多关系的这么一个问题,你却得花不少功夫来处理。要是稍不留神,时不时出点问题就更郁闷了。我现在做的一个项目也到了该处理分页的时候了,感觉以前处理得都不好,所以这次有所改变,基本目标是在现有(未分页)的代码基础上,尽量少做修改,并且同样的代码可以应用于不同模块的分页。以下就是我用的方法:
首先,考虑分页绝大多数发生在列表时,组合查询时也需要用到。在我的项目里,列表的Action一般名字为ListXXXActioin,例如客户列表是ListClientsAction等等。在未分页前,ListXXXAction里会把所有的对象取出,通过request.setAttribute()放在request里,然后将请求转向到列表的jsp(例如listClients.jsp)显示出来(你可能会说不要在Action里放业务逻辑,但现在这不是我们考虑的重点)。而分页后,我们只取用户请求页对应的那些对象。为了最大限度的达到代码重用,我做了以下工作:
1、新建一个Pager类,该类有beginPage、endPage、currentPage、pageSize和total等int类型的属性,分别代表开始页、结束页、当前页、每页记录数和总记录数,它主要是让jsp页面显示页导航使用的。请注意currentPage属性是从0开始的。
2、新建一个AbstractListActioin类,并让所有ListXXXAction都继承它。在这个类里覆盖execute()方法,可以在这里判断权限等等,并在判断权限通过后执行一个abstract的act()方法,这个act()由ListXXXAction来实现。
3、在AbstractListAction里增加getPage()方法,用来从request得到用户请求的页码(若未请求则认为是第0页):
protected int getPage(HttpServletRequest request) {
    String p 
= request.getParameter("p");
    
if (p == null)
        
return 0;
    
else
        
try {
            
return Integer.parseInt(p);
        } 
catch (NumberFormatException e) {
            
return 0;
        }
}
 
4、在AbstractListAction里增加makePager()方法,用来向request里增加一个Pager类的实例,供jsp页面显示页导航:
protected Pager makePager(HttpServletRequest request, int total) {
    Pager pager
=new Pager();
    pager.setTotal(total);
    pager.setPageSize(Config.getInstance().getPageSize());
    pager.setBeginPage(
0);
    pager.setEndPage(((pager.getTotal()) 
- 1/ pager.getPageSize() + 1);
    pager.setCurrentPage(getPage(request));
    
return pager;
}

查看更多...

Tags: 分页

分类:Struts | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 990
07-06
25

<html:multibox>实验

<html:multibox>要比<html:checkbox>更灵活。它会把用户界面上面选择的复选框中的信息封装在一个数组里面,数组存在于Form中,并通过用户提交在Action中取得。
如下例所示:
JSP页面:
<body>
<html:messages id="message" message="true">
<bean:write name="message"/>
</html:messages>
<html:form action="box.do" method="POST">
<html:text property="name">

查看更多...

分类:Struts | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 845