blogjava-凯发k8网页登录http://www.blogjava.net/algz/category/32842.htmlpurple butterfly flying qq群:7101519 flex,ext,spring,hibernate,eos,springsecurity,struts http://algz.googlecode.com/svn/trunk/zh-cnwed, 09 nov 2011 10:19:33 gmtwed, 09 nov 2011 10:19:33 gmt60在spring的bean中获取servletcontext 和 servletconfighttp://www.blogjava.net/algz/articles/352560.html紫蝶∏飛揚↗紫蝶∏飛揚↗sat, 18 jun 2011 01:44:00 gmthttp://www.blogjava.net/algz/articles/352560.htmlhttp://www.blogjava.net/algz/comments/352560.htmlhttp://www.blogjava.net/algz/articles/352560.html#feedback0http://www.blogjava.net/algz/comments/commentrss/352560.htmlhttp://www.blogjava.net/algz/services/trackbacks/352560.html
在spring的bean中获取servletcontext 和 servletconfig
  常规方式下获取servletcontext需要继承httpservlet类,然后获取servletconfig,通过这个获取servletcontext(servletconfig.getservletcontext())。
  但是spring的bean都是pojo,和我们常规的操作有些不同。
spring给我们提供了两个接口:org.springframework.web.context.servletcontextaware和org.springframework.web.context.servletconfigaware。我们可以让我们的bean实现上边的任何一个接口就能获取到servletcontext了 .
代码如下:
public class dicbean implements servletcontextaware{
    
private servletcontext servletcontext;

public void setservletcontext(servletcontext sc) {
    
this.servletcontext=sc;
    system.out.println(
"项目应用的绝对路径为:"servletcontext.getrealpath("/"));
}
}


紫蝶∏飛揚↗ 2011-06-18 09:44
]]>
ps切片导出为div css布局http://www.blogjava.net/algz/articles/297304.html紫蝶∏飛揚↗紫蝶∏飛揚↗tue, 06 oct 2009 04:42:00 gmthttp://www.blogjava.net/algz/articles/297304.htmlhttp://www.blogjava.net/algz/comments/297304.htmlhttp://www.blogjava.net/algz/articles/297304.html#feedback0http://www.blogjava.net/algz/comments/commentrss/297304.htmlhttp://www.blogjava.net/algz/services/trackbacks/297304.html

在修改好相应的文字与图象之后,我们就将psd文件输出(x)html文件。

首先得先对psd文件做切片,有两种方法:

①使用工具栏上的“切片工具”,

 

然后在图象上划出一块一块的区域。

 

②使用基于参考线的切片,按ctrl r调出标尺栏,

 

把鼠标移动到标尺上,按住鼠标左键,移动到图象上,将会看到一条绿色的参考线,如图

 


将参考线;排好,然后点一下工具栏上的切片工具图表,然后点上面

选项栏里的“基于参考线的切片”。于是在原来的参考线上就变成了一块一块的切片了。

******************************************************************************** 

接下来就可以输出了:
①依次选择菜单栏上的“文件”→“存储为web所用格式”→“存储”。

②接下来就会弹出一个“将优化结果存储为”的窗口。

在“保存类型”处有个下拉列框可以选择,因为我们要存储为网页的格式,所以选择“html和图象(* html)”,再选择“保存”就可以输出一个网页格式的html文件与一个包含图象的名为“images”的文件夹。

③如果我们需要输出“div css的网页”我们还可以这么做:
在“设置”处的下拉列框,选择“其他”

 

就会弹出一个“输出设置”的窗口
在第2个下拉列框处选择“切片”,选择“生成css”,单击“好”→“保存”,就可以输出一个目前流行的“div css”的html网页。





紫蝶∏飛揚↗ 2009-10-06 12:42
]]>
renderto and el and contentel 图文详解http://www.blogjava.net/algz/articles/296287.html紫蝶∏飛揚↗紫蝶∏飛揚↗thu, 24 sep 2009 06:36:00 gmthttp://www.blogjava.net/algz/articles/296287.htmlhttp://www.blogjava.net/algz/comments/296287.htmlhttp://www.blogjava.net/algz/articles/296287.html#feedback0http://www.blogjava.net/algz/comments/commentrss/296287.htmlhttp://www.blogjava.net/algz/services/trackbacks/296287.html    id:"box",
   renderto:"content11",
   el: "content11-title"

********************************************************
   id:"box",
   renderto:"content11",
   //el: "content11-title"

********************************************************
id : "box",
renderto : "content11-title"//,
// el: "content11-title"

********************************************************
id : "box", 
contentel: "content11-title",
renderto : "content11"//,


id : "box", 
contentel: "content11-title",
renderto : "content11"//,


紫蝶∏飛揚↗ 2009-09-24 14:36
]]>
css 定位posistion,absolute,relative,float,clear最简单明了的解释http://www.blogjava.net/algz/articles/294706.html紫蝶∏飛揚↗紫蝶∏飛揚↗fri, 11 sep 2009 04:43:00 gmthttp://www.blogjava.net/algz/articles/294706.htmlhttp://www.blogjava.net/algz/comments/294706.htmlhttp://www.blogjava.net/algz/articles/294706.html#feedback1http://www.blogjava.net/algz/comments/commentrss/294706.htmlhttp://www.blogjava.net/algz/services/trackbacks/294706.html css 有二种基本的定位机制:文档流、脱离文档流。
除非指定元素定位属性,否则所有元素框都在文档流中定位。也就是说,文档流中的元素位置由元素在 x(html) 中的位置决定。

二 css定位相关的两属性 position 和 float
(1)position:定位时,使用 left,right,top,bottom 中至少一个值定位。

值:
static:正常文档流布局,默认值。
relative(相对):不脱离文档流,其“相对于”它在文档流中原位置进行垂直水平偏移,所有后序元素原位置不变,但可能覆盖后序元素,但不算层叠,不可通过属性定义。


absolute(绝对):脱离文档流,不占据空间,所有后序元素自动前移,绝对定位元素的起点位置相对于最近已定位(只需指定一个position属性)祖先元素(从父元素开始搜索)以外边距后为起点(可存在内边距里,如图:,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(body)。可多重层叠通过属性定义。 定位后生成一个块级框,而不论原来它在文档流中是何种类型的框。


文档流中其它元素的布局就像绝对定位的元素不存在一样:



(2)float:浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框脱离文档流,所以文档流中的其它元素块框表现得就像浮动框不存在一样。定位时,与margin与padding相关。


(3)clear
定义和用法
clear 属性
设置元素的侧面是否允许其他的浮动元素。
说明
clear 属性定义了元素的哪边上不允许出现浮动元素。在 css1 和 css2 中,这是通过自动为清除元素(即设置了 clear 属性的元素)增加上外边距实现的。
在 css2.1 中,会在元素上外边距之上增加清除空间,而外边距本身并不改变。不论哪一种改变,最终结果都一样,如果声明为左边或右边清除,会使元素的上外边框边界刚好在该边上浮动元素的下外边距边界之下。
值  描述
left  在左侧不允许浮动元素。
right  在右侧不允许浮动元素。
both  在左右两侧均不允许浮动元素。
none  默认值。允许浮动元素出现在两侧。

图像的左侧和右侧均不允许出现浮动元素:img{float:left;clear:both;}



 

紫蝶∏飛揚↗ 2009-09-11 12:43
]]>
extjs dataview 详解http://www.blogjava.net/algz/articles/294297.html紫蝶∏飛揚↗紫蝶∏飛揚↗tue, 08 sep 2009 06:10:00 gmthttp://www.blogjava.net/algz/articles/294297.htmlhttp://www.blogjava.net/algz/comments/294297.htmlhttp://www.blogjava.net/algz/articles/294297.html#feedback0http://www.blogjava.net/algz/comments/commentrss/294297.htmlhttp://www.blogjava.net/algz/services/trackbacks/294297.htmlvar store = new ext.data.jsonstore({ url: 'get-images.php', root: 'images', fields: [ 'name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date', dateformat:'timestamp'} ] }); store.load(); var tpl = new ext.xtemplate( 'for=".">', '
"thumb-wrap" id="{name}">', '
"thumb">"{url}" title="{name}">
', '"x-editable">{shortname}
', '', '
"x-clear">
' ); var panel = new ext.panel({ id:'images-view', frame:true, width:535, autoheight:true, collapsible:true, layout:'fit', title:'simple dataview',

items: new ext.dataview({ store: store, tpl: tpl, autoheight:true, multiselect: true, overclass:'x-view-over', //鼠标悬停item时的类样式,defaults to undefined itemselector:'div.thumb-wrap', //必须项,值为item选择器,此值也可为.thumb-wrap e.g. div.some-class
//:'x-view-selected', //(默认名)defaults to 'x-view-selected',但仍必须写此类的css内容
emptytext: 'no images to display'

/*
            plugins: [
                new ext.dataview.dragselector(),
                new ext.dataview.labeleditor({dataindex: 'name'})
            ],*/

            preparedata: function(data){ //数据预处理,即数据处理前.data为原始数据,类型为对象.
                data.shortname = ext.util.format.ellipsis(data.name, 15); //指定字符串为15个字符,超出部分用三个圆点代替.
            //  data.sizestring = ext.util.format.filesize(data.size);
            //  data.datestring = data.lastmod.format("m/d/y g:i a");
                return data;
            },
           
           listeners: {
             selectionchange: { //结点的选择发生改变时,即重新选择结点时,可以更改为selectionchange:function(dv,nodes)...
              fn: function(dv,nodes){
               var l = nodes.length;
               var s = l != 1 ? 's' : '';
               panel.settitle('simple dataview (' l ' item' s ' selected)');
              }
             }

}) }); panel.render(document.body);

dataview 用store提供的数据流,采用tpl的格式显示,itemselector的值为数据流中块的css类选择器,对块操作时更换其css类样式,如鼠标悬停在块上和块被选定时的css类样式;简单点说,就是有利于对数据流中的块好控制操作.

tpl定义的块:
鼠标悬停时的块(overclass):
点击被选中的块(selectedclass):<div id="kids_hug2.jpg" class="thumb-wrap x-view-selected">

1.当鼠标点击数据流中某一块时,块增加selectedclass定义的类样式,如没定义类名,即采用默认的类名'x-view-selected'(css内容依然为空,仍需手写,只是类名必须为此);
2.用overclass定义的css类样式,鼠标悬停在块(div)上,更换其css类样式.
3.dataview.store.filter(f1,f2):从store中查找f1字段,与f2匹配(不完全匹配相同)过滤,重新本地加载数据.
4.dataview.store.store(f1,'asc'/'desc'):store的内容按f1的值排序.
5.dataview.store.clearfilter():清除过滤状态.还原初始.
6.dataview.select(n):更换第n个块的css类样式.

(二)html:





-->

blogjava-凯发k8网页登录




























































紫蝶∏飛揚↗ 2008-04-10 13:33
]]>webapps jsf spring hibernate项目开发流程http://www.blogjava.net/algz/articles/190077.html紫蝶∏飛揚↗紫蝶∏飛揚↗tue, 01 apr 2008 06:48:00 gmthttp://www.blogjava.net/algz/articles/190077.htmlhttp://www.blogjava.net/algz/comments/190077.htmlhttp://www.blogjava.net/algz/articles/190077.html#feedback2http://www.blogjava.net/algz/comments/commentrss/190077.htmlhttp://www.blogjava.net/algz/services/trackbacks/190077.html

序.画流程图.
一.创建数据库.
注:
1.数据库中设计int(java.lang.interger),  varchar(n)(java.lang.string),  date(java.lang.date)
2.1:n的情况下, 数据库中设计外键(n方)和集合(一方).
2.hibernate 返向工程.

二.添加jsf, spring, hibernate 库引用.
spring 添加如下:



三. 为spring 配置 web.xml 和 faces-config.xml .
(1)web.xml
 
  contextconfiglocation
  /web-inf/applicationcontext.xml
 


(2)web.xml

       org.springframework.web.context.contextloaderlistener
              //servlet api 2.3以后
或:
 
  context
  org.springframework.web.context.contextloaderservlet
  1
 


(3)faces-config.xml

org.springframework.web.jsf.delegatingvariableresolver


(4)设置过滤器,解决乱码问题
详见:第二条

以上配置完成后.jsf就可以访问spring管理的bean.

四.spring hiberante集成时,asm-2.2.3.jar与asm.jar冲突:
org.springframework.beans.factory.beancreationexception: error creating bean with name 'sessionfactory' defined in class path resource [applicationcontext.xml]: invocation of init method failed; nested exception is java.lang.nosuchmethoderror: org.objectweb.asm.classvisitor.visit(iiljava/lang/string;ljava/lang/string;[ljava/lang/string;ljava/lang/string;)v  
...
caused by: java.lang.nosuchmethoderror: org.objectweb.asm.classvisitor.visit(iiljava/lang/string;ljava/lang/string;[ljava/lang/string;ljava/lang/string;)v

正确的解决方法:
是到项目的发布文件夹\web-inf\lib下删除asm-2.2.3.jar,不能用myeclipse里删除.因为他在发布时仍没删除.

五.创建进行分类的包.
com.dao(数据访问层), com.service(业务层), com.web(表示层)

六.创建类.(完成model层设计).   
   
*****************************(也可以利用myeclipse反向orm功能自动产生,但应注意自动配置引起的"类完全名"的错误)*******************

  (一)数据访问层(dao)开发: 

         spring 配置文件(附加) 
           (1)配置数据源          <bean id="datasource" ...>      //myeclipse hibernate自动反转工具自动配置
           (2)配置会话工厂     <bean id="sessionfactory" ...>  //myeclipse hibernate自动反转工具自动配置
           (3)配置事务管理器 
           (4)配置事务代理     
           (5)数据访问层bean作为属性注入业务层property中. (注:不要用new创建数据访问层对象,否则得不到servletcontext而报错.)
例:
/**数据访问层bean(myeclipse hibernate自动反转工具配置)*/
 userdao" class="com.data.dao.impl.userdaoimpl">
  
   
  

 


 /**业务层bean(myeclipse spring配置文档中可以配置,但需先定义好相关类)*/
 userservice" class="com.model.service.impl.userserviceimpl">
  
   userdao" />
  

 


        1. 创建 数据访问层接口:    必须创建,详见:
            public interface 数据访问层接口 {   //在类已存在的情况下,添加其接口:refactor(重构)->extract interfaces提取接口
                public string add...();
                public string save...();
                  ......                                            //update, delete, load
            }

        2 .创建数据访问层实现类    //orm反向功能自动配置
            public class 数据访问层实现类 extends hibernatedaosupport implements 数据访问层接口 {
            ......                                          //gethibernatetemplate().save(user)
            }
             在实现类的方法(throw dataaccessexception)中封装 gethibernatetemplate().save(user) 等spring已封装的持久化方法.(注:如果使用hibernate api 要用try{...}catch{...}自行处理导常.)         

        3.注意事项: could not initialize proxy - no session 异常,  可能是没有联表查询.详见


*****************************(也可以利用myeclipse反向orm功能自动产生)***********************************

   (二)业务逻辑层(service)开发:
         1.创建业务逻辑层接口
package com.service;
import com.dao.checkdao;
public interface icheckservice {
    public abstract checkdao getcheckdao();
    public abstract void setcheckdao(checkdao checkdao);
    public abstract string searchcheck();
}

         2.创建业务逻辑层实现类 
             public class 业务逻辑层实现类 implements 业务逻辑层接口.
             在实现类中. 引用的数据访问层对象实例采用di的设值方式注入
                                   在业务逻辑方法(throw dataaccessexception)中,使用数据访问层对象实例来访问数据库.  
package com.service;
import java.util.list;
import org.json.simple.jsonarray;
import org.json.simple.jsonobject;
import com.dao.check;
import com.dao.checkdao;
import com.dao.icheckdao;

public class checkservice implements icheckservice {
private checkdao checkdao;

public checkdao getcheckdao() {
 return checkdao;
}

public void setcheckdao(checkdao checkdao) {
 this.checkdao = checkdao;
}

public string searchcheck(){
 list l=checkdao.findall();
 jsonarray ja=new jsonarray();
 jsonobject jo=new jsonobject();
for(check c:l){
//  jo.put("department", c.getdepartment());
//  jo.put("checkid", c.getcheckid());
//  jo.put("nam", c.getnam());
//  jo.put("num", c.getnum());
//  jo.put("ondutytime", c.getondutytime());
//  jo.put("offdutytime", c.getoffdutytime1());
//  jo.put("registerdate", c.getregisterdate());
//  jo.put("overtime", c.getovertime());
//  ja.add(jo.clone());
//  jo.clear();
 }
  return "";
}

}

         3.数据访问层bean作为属性注入业务逻辑层实现类property中. (注:不要用new创建数据访问层对象,否则得不到servletcontext而报错.)
例:
/**数据访问层bean(hibernate自动反转工具自动配置)*/
 userdao" class="com.data.dao.impl.userdaoimpl">
  
   
  

 


 /**业务逻辑层bean(spring配置文档中手动配置,但需先定义好相关类)*/
 userservice" class="com.model.service.impl.userserviceimpl">
  
   userdao" />
  

 


   (三).表示层开发

       (1)在 faces-config.xml 中配置托管bean
.(实现控制层层设计)
           业务层bean作为属性注入control层中.


package com.web;

import com.service.icheckservice;

public class searchall {
 private icheckservice searchservice;
 private string searchdata;

 public searchall() {
 }

 public icheckservice getsearchservice() {
  return searchservice;
 }

 public void setsearchservice(icheckservice searchservice) {
  this.searchservice = searchservice;
 }

 public string getsearchdata() {
  searchdata = searchservice.searchcheck();
  return searchdata;
 }

 public void setsearchdata(string searchdata) {
  this.searchdata = searchdata;
 }
}


 
    userbean
    com.web.searchall
    session
    
       searchservice
          #{userservice}    //直接引用spring定义的bean
    

   
       searchdata    //页面中 userbean.name访问属性的数据
          123                                      //属性默认值
    

 


        (2)bean访问客户端传来的参数值
            httpservletrequest request=(httpservletrequest) facescontext.getcurrentinstance().getexternalcontext().getrequest();
            string s=request.getparameter("webnam");


七.页面设计.(实现view层设计) 

index.faces:(共二行)
<%@ page language="java" pageencoding="utf-8"%>     //解决extjs 接收数据中有中文出现"?????"等乱码
 ${searchall.searchdata}                                                    //解决js接收数据.ext.store({url:index.faces,...})


    页面中访问bean的二种方法
    方法一:直接在.faces页面中使用${userbean.property} (推荐)  //property:get/set methord
         注,不能使用${userbean.method}

            //jsf标签必须放在里面
            名稱1: ${userbean.searchdata}                              //正确
                   //#{userbean.searchdata}                           //报错
            名稱2:       //正确
                    //      //报错
                    //               //报错
             名稱3:                //正确,而且仍然可以使用jsf的managedbean
   

jsf表达式#{...}只能用在jsf标签里,jsp表达式${...}也只能用jsp页面里.
jsp el的语法格式:${...} 不能放在<%...%>中. 

     方法二: 在.jsp页面中,直接获取业务层定义的bean
<%@ page import="javax.servlet.servletcontext" %>
<%@ page import="org.springframework.context.applicationcontext" %>
<%@ page import="org.springframework.web.context.support.webapplicationcontextutils" %>

<%
//获取applicationcontext对象
servletcontext   servletcontext   =   request.getsession().getservletcontext();          
applicationcontext   ac   =   webapplicationcontextutils.getwebapplicationcontext(servletcontext);

//获取applicationcontext.xml文件中定义的bean
userserviceps=(userservice)ac.getbean("userservice");

八.导出war
      file->export->j2ee->war file



紫蝶∏飛揚↗ 2008-04-01 14:48
]]>
网站地图