继续关注我的C语言学习博客

林临的地盘

java学习博客
posts - 44, comments - 28, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2009年4月6日

struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:
s:iterator 标签有3个属性:
    value:被迭代的集合
    id   :指定集合里面的元素的id
    status 迭代元素的索引
1:jsp页面定义元素写法 数组或list

<s:iterator value="{'1','2','3','4','5'}" id='number'>
    <s:property value='number'/>A
</s:iterator>
打印结果为: 1A2A3A4A5A
2:索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
int getCount()返回当前迭代了几个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第一个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数
<s:iterator value="{'a','b','c'}" id='char' status='st'>
    <s:if test="#st.Even">
        现在的索引是奇数为:<s:property value='#st.index'/>
    </s:if>
    当前元素值:<s:property value='char'/>
</s:iterator>
3:遍历map
value可以直接定义为:
value="#{"1":"a","2":"b"}"
每个元素以都好隔开。元素之间的key和value 冒号隔开
value也可以是数据栈里面的java.util.Map对象
遍历写法如下:
<s:iterator value="map" id="id" status="st">
     key : <s:property value='key'/>
     value:<s:property vlaue='value'/>
</s:iterator>
当然key 和value 都可以使java 的 Object
3:遍历数据栈.简单的List类,
List<Attr>
class Attr{String attrName;String getAttrName(){return "123";}}
<s:iterator value="label" id="id">
    <s:property value="#id.attrName" />
</s:iterator>
当然value 还可以写成 value="%{label}" label可以有.操作
label的属性List 可以写成value="%{label.list}" 相当于:getLabel().getList();
4:遍历2个list;
List<AttrName> attrN {color,size,style}
List<AttrValue> attrV {red,20,gay}
这2个list的元素是一一对应的,一个attrN对应一个attrV
<s:iterator value="%{attrN }" id="id"   status="status">
index    is : <s:property value='status.index'/>
attrName is : <s:property value='id'/> or <s:property value='%{id}'/>
attrName is : <s:property value='%{attrV[#status.index]}'/>
</s:iterator>  
转自:http://www.blogjava.net/Reg/archive/2009/11/20/303085.html

posted @ 2012-06-18 17:11 lubaolin 阅读(817) | 评论 (0)编辑 收藏

点击“开始→运行”,在弹出的“运行”对话框中输入“REGSVR32 /n /i:u shell32”(不含双引号),然后回车,片刻后会弹出“shell32中的DllInstall成功”对话框,“显示桌面”按钮就可以完美归来了

posted @ 2011-04-21 09:11 lubaolin 阅读(348) | 评论 (0)编辑 收藏

     摘要: HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢? 这就要说到HTML转义字符串(Esca...  阅读全文

posted @ 2010-09-07 18:30 lubaolin 阅读(8812) | 评论 (0)编辑 收藏

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jazzlib.ZipEntry;
import net.sf.jazzlib.ZipOutputStream;

public class BatchDownload extends HttpServlet {

 public BatchDownload() {
  super();
 }

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("APPLICATION/OCTET-STREAM");
  response.setHeader("Content-Disposition","attachment; filename="+this.getZipFilename());
  System.out.println("in BatchDownload................");
  ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());  
     File[] files = new File[2];
     files[0]=new File("c:/zip/文件A.doc");
     files[1]=new File("c:/zip/文件B.doc");
     zipFile(files, "", zos);  
     zos.flush();  
     zos.close();  

 }
 private void zipFile(File[] subs, String baseName, ZipOutputStream zos) throws IOException {    
      for (int i=0;i<subs.length;i++) {
       File f=subs[i];
       zos.putNextEntry(new ZipEntry(baseName + f.getName()));  
       FileInputStream fis = new FileInputStream(f);  
       byte[] buffer = new byte[1024];  
       int r = 0;  
       while ((r = fis.read(buffer)) != -1) {  
           zos.write(buffer, 0, r);  
       }  
       fis.close();
      }
 }
 private String getZipFilename(){
  Date date=new Date();
  String s=date.getTime()+".zip";
  return s;
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  this.doGet(request, response);
 }
}

posted @ 2009-10-22 14:30 lubaolin 阅读(694) | 评论 (0)编辑 收藏

将listener.ora中的(PROGRAM = extproc)这句注释掉就可以了。去网上找过,extproc是一个扩展的程序调用接口协议,  连接和调用外部的操作系统程序或进程用时会用到。

转自:http://blog.csdn.net/chenjuntj2007/archive/2009/07/04/4321640.aspx

posted @ 2009-09-21 17:19 lubaolin 阅读(21180) | 评论 (3)编辑 收藏

//创建临时表空间

create temporary tablespace test_temp
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;

//创建数据表空间
create tablespace test_data
logging
datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;

//创建用户并指定表空间
create user username identified by password
default tablespace test_data
temporary tablespace test_temp;

//给用户授予权限

grant connect,resource to username;

//以后以该用户登录,创建的任何数据库对象都属于test_temp 和test_data表空间,这就不用在每创建一个对象给其指定表空间了。

转载:http://virgos.javaeye.com/blog/337976

posted @ 2009-07-23 10:35 lubaolin 阅读(339) | 评论 (0)编辑 收藏

struts2+spring2.x+hibernate3.x 懒加载异常:org.hibernate.LazyInitializationException: failed to lazily initialize

Hibernate的Lazy初始化1:n关系时,必须保证是在同一个Session内部使用这个关系集合,不然Hiernate将抛出异常:org.hibernate.LazyInitializationException: failed to lazily initialize of....
两种处理方法:
一、设置lazy=false,此方法不再累述。
二、用OpenSessionInViewFilter过滤器,注意hibernateFilter过滤器和struts2过滤器在映射时的先后顺序。同时要配置事物处理,否则会导致session处于只读状态而不能做修改、删除的动作。
即在web.xml文件中如下配置:
     <!-- Spring ApplicationContext配置文件的加载目录。 -->  
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath*:spring/applicationContext.xml</param-value>
 </context-param>

 <!-- 解决延迟加载的问题 -->
 <filter>
  <filter-name>hibernateFilter</filter-name>
  <filter-class>
   org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
  </filter-class>
 </filter>
 
 <!-- 继承Struts2的FilterDispatcher类,具备GBK等编码设定功能与struts2的action过滤功能。 -->
 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>
   com.iman.nrms.opm.web.common.FilterDispatcher
  </filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>GBK</param-value>
  </init-param>
 </filter>
 <filter>
         <filter-name>struts-cleanup</filter-name>
         <filter-class>
             org.apache.struts2.dispatcher.ActionContextCleanUp
         </filter-class>
     </filter>
 
 <filter-mapping>
  <filter-name>hibernateFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 
 <filter-mapping>
  <filter-name>struts-cleanup</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常。而Spring为我们提供的OpenSessionInViewFilter过滤器为我们很好的解决了这个问题。OpenSessionInViewFilter的主要功能是使每个请求过程绑定一个 Hibernate Session,即使最初的事务已经完成了,也可以在 Web 层进行延迟加载的操作。OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到。所以 OpenSessionInViewFilter 适用于 Service 层使用HibernateTransactionManager 或 JtaTransactionManager 进行事务管理的环境,也可以用于非事务只读的数据操作中。
request-->open session-->打开连接、开始事务-->持久操作-->渲染(关闭连接、session)-->response 其中一些过程省略了,不是很关心。

 

引自:http://blog.csdn.net/fhwbj/archive/2009/03/25/4022805.aspx

posted @ 2009-07-03 16:19 lubaolin 阅读(2634) | 评论 (0)编辑 收藏

1、选择Help -> Software Updates -> Find and Install...-> Search for new features to install ->New remote site...
Name: "Spket", Url: "http://www.spket.com/update/"下载完毕重启 Eclipse

2、Window -> Preferences -> Spket -> JavaScript Profiles -> New ;
输入“ExtJS”点击OK;
选择“ExtJS” 并点击“Add Library”然后在下拉条中选取“ExtJS”;
选择 “ExtJS”并点击“Add File”,然后在你的./ext-2.x/source目录中选取“ext.jsb” 文件;

3、设置新的ExtJS Profile,选中并点击“JavaScript Profiles” 对话框右手边的“Defalut”按钮;

4、JS打开方式为 Window -> Preferences ->General-> Editors-> File...选择JS  为 Spket JavaScript Editor(default)

posted @ 2009-04-06 22:20 lubaolin 阅读(886) | 评论 (0)编辑 收藏

继续关注我的C语言学习博客