May 29
常常遇到数组排序的问题.比如我有一个Person类,它的实例对象存储在ArrayList数组中,现在要把ArrayList数组中的Person对象按照年龄排序.
其实这种情况经常遇到.
下面给出源代码:


1:Person.java文件:-------------------------------
public class Person{
String name;
int age;

public Person(String name,int age){
this.name = name;
this.age = age;

}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}


2:Mycomparator.java-------------------------------
//实现Comparator接口,也就是定义排序规则,你几乎可以定义任何规则
package com.infoearth;
import java.util.*;
public class Mycomparator implements Comparator{

public int compare(Object o1,Object o2) {
Person p1=(Person)o1;
Person p2=(Person)o2;
if(p1.age<p2.age)
  return 1;
else
  return 0;
}

}

3:ListSort.java------------------------------------

package com.infoearth;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class ListSort {
public static void main(String[] args){
ArrayList list = new ArrayList();
list.add(new Person("lcl",28));
list.add(new Person("fx",23));
list.add(new Person("wqx",29));
Comparator comp = new Mycomparator();
Collections.sort(list,comp);
for(int i = 0;i<list.size();i++){
  Person p = (Person)list.get(i);
  System.out.println(p.getName());
}

}

}

Tags:
May 19
因为近期在研究supesite,所以记录一些有关的知识点,方便以后查阅。

1.语法格式 <!–{…}–> 逻辑元素包围符,该符号用于包含条件和循环元素

2.条件判断

程序代码
<!–{if expr1}–> statement1 <!–{elseif expr2}–> statement2 <!–{else}–> statement3 <!–{/if}–>
这是一个典型的条件模板,当条件 expr1 为真时,显示模板 statement1 内容,否则当 expr2 为真时,显示模板 statement2 内容,否则显示模板 statement3 的内容。如同其他语言中的条件控制一样,其中 <!–{elseif expr}–> 和 <!–{else} –> 是非必须的。

3.不带下标变量的数组循环

程序代码
<!–{loop $array $value}–> statement <!–{/loop}–>
相当于 PHP 的数组循环语句:

程序代码
foreach($array as $value) { statement }
4.带下标变量的数组循环

程序代码
<!–{loop $array $key $value}–> statement <!–{/loop}–>
相当于 PHP 的数组循环语句

程序代码
foreach($array as $key => $value) {      statement }
5.时间处理函数

程序代码
#date(’Y-n-d H:i’, $time)#
相当于PHP得gmdate进行时间处理 gmdate($dateformat, $time) 6.自定义广告显示函数

程序代码
#getad(‘user’,’adid’)#
相当于PHP语法中的

程序代码
<?php echo getad(‘user’, ‘$adid’)?>
7.模板文件包含

程序代码
{template blog_header}
相当于PHP语法中的

程序代码
<?php template(‘blog_header’)?>
         包含blog_header.htm文件。
8.模板中的eval函数

程序代码
<!–{eval $a = $b}–>
就相当于执行PHP程序

程序代码
<?php $a = $b;?>
9.模板中的block函数

程序代码
<!–{block name=”spaceblog” parameter=”dateline/604800….”}–>
就相当于PHP程序中的

程序代码
<?php block(‘$name’,’$parameter’);?>
Block函数,就是生成模块的主要函数。逻辑元素包围符在 { } 外面包含了 html 的注释符号 <!– –>,除了为了和信息元素相区别外,也方便了使用 Dreamweaver 和 Frontpage 之类工具编辑模板的用户。因逻辑元素会被识别为 html 的注释而不被显示,对于绝大多数用户,逻辑元素中的内容是完全不需要修改的,甚至修改错一个字符就可能引起错误信息和整个系统无法运行。因此通常您在修改模板的时候,不要修改模板的逻辑信息,更不要将逻辑信息内部元素(如 <!–{else}–> 等)的前后位置作以修改,否则可能会导致错误。如果您的模板被不慎修改损坏,请立即用原标准默认模板覆盖,即可恢复。对于高手而言,实际上外部的 <!– –> 是可以省略不写的,可以用于某些元素在模板中的定位,但强烈建议普通用户不要轻易尝试。
Tags:
May 19
我们在SupeSite系统的每个模板里,都可以看到类似的一段代码:

<!--{block name="spacenews" parameter="dateline/2592000/haveattach/1/showattach/1/order/i.viewnum DESC/showdetail/1/messagelen/180/messagedot/1/limit/0,1/cachetime/98800/subjectlen/30/cachename/hotnews/tpl/data"}-->
  <div id="topicnews" class="block" style="height: 240px; overflow: hidden;">
    <h3>月点击图文头条</h3>
    <!--{loop $_SBLOCK[hotnews] $value}-->
    <p class="blockintro"><a href="$value[url]"><img src="$value[a_thumbpath]" class="blockintroimg" alt="$value[subject]" /></a>$value[message]...<a href="$value[url]">阅读更多</a></p>
    <!--{/loop}-->
  </div>

这里给大家解释下这段代码的作用:

一、


<!--{block name="spacenews" parameter="dateline/2592000/haveattach/1/showattach/1/order/i.viewnum DESC/showdetail/1/messagelen/180/messagedot/1/limit/0,1/cachetime/98800/subjectlen/30/cachename/hotnews/tpl/data"}-->


包含两个部分的内容:

1、根据 parameter 后面给出的参数在数据库里查询某个数据表,将查询到的所有资源存放到 $_SBLOCK[变量名] 数组里。通俗的说法是,这段代码相当与一段SQL的 select 语句,查询的数据表是 name 后面的参数,查询的条件是 parameter 后面的参数,最后查询的果存放到 $_SBLOCK[变量名] ,变量名是 cachename 后面的参数。

2、确定这部分数据的缓存时间:cachetime后面的参数,单位是秒;确定这部分数据在页面的显示模板:tpl后面的参数,如:data,那么这段数据显示的模板是:.\styles\data.html.php。大家可以看到 .\styles\data.html.php 这个文件夹里没有定义任何样式,所以必须在 block 代码下方定义样式。

二、


<!--{loop $_SBLOCK[hotnews] $value}-->
...
<!--{/loop}-->


loop 的含义是:将 $_SBLOCK[hotnews] 数组里的资源,逐一存放到 $value 数组里。注意:loop 和 foreach() 函数的作用一样。

三、


<p class="blockintro"><a href="$value[url]"><img src="$value[a_thumbpath]" class="blockintroimg" alt="$value[subject]" /></a>$value[message]...<a href="$value[url]">阅读更多</a></p>


这一段内容,都是 html 标签,
<a href="$value[url]">...</a>
,含义是在页面展示一个 a 标签,a标签的指向是 $value[url]。一般情况下,我们都不知道 $value[] 数组里存放的内容是什么,我们可以应用的元素有哪些。这时,我们可以使用这个语句将 $value[] 数组打印到页面上。
<!--{eval print_r($value);}-->


四、

为大家介绍常用的 parameter 参数含义:
order------------------------------以什么方式排序,常见的排序方式如下几种:
        displayorder--------------以后台设置的显示顺序排序
        views DESC----------------以查看数递减的方式排序
        replies DESC--------------以回复数递减的方式排序
        posts DESC----------------以帖子数递减的方式排序
        m.posts DESC--------------以会员贴子数递减的方式排序
        m.oltime DESC-------------以会员在线时间递减的方式排序
        u.dateline DESC-----------以会员注册时间递减的方式排序
        i.goodrate DESC-----------以信息好评数递减的方式排序
        u.spaceallnum DESC--------以会员个人空间的信息总数递减排序
        u.spaceblognum DESC-------以会员个人空间的日志总数递减排序
        g.usernum DESC------------以圈子会员数递减的方式排序
        g.lastpost DESC-----------以圈子最后更新时间递减的方式排序
limit------------------------------显示多少条信息
        0,100---------------------显示100条
dateline---------------------------发布时间范围,以秒(s)为单位
        2592000-------------------2592000秒,即:3天
showdetail-------------------------是否显示信息摘要
        1-------------------------1为显示(0为不显示)
messagelen-------------------------摘要显示的长度,以字节数为单位
        160-----------------------显示160个字节信息
subjectlen-------------------------主题的显示长度,以字节数为单位
        40------------------------显示40个字节信息
type-------------------------------设置信息的类型
        forum---------------------二级版块的信息
        goods---------------------商品的信息
        news----------------------资讯的信息
        video---------------------影音的信息
filetype---------------------------设置附件的类型
        image---------------------图片附件
lastpost---------------------------最后回复时间范围,以秒(s)为单位
        2592000-------------------2592000秒,即:3天
subjectdot-------------------------显示主题时,如果主题长度大于显示长度,末尾是否加点
        1-------------------------末尾加点(0为末尾不加点)
messagedot-------------------------显示摘要时,如果摘要长度大于显示长度,末尾是否加点
        1-------------------------末尾加点(0为末尾不加点)
showattach-------------------------是否显示附件信息
        1-------------------------显示附件信息
haveattach-------------------------是否必须包含附件
        1-------------------------必须包含附件
isstar-----------------------------空间之星
        1-------------------------是
perpage----------------------------每页显示的信息条数
        15------------------------显示15条
regdate----------------------------注册时间范围,以秒(s)为单位
        2592000-------------------2592000秒,即:3天

给大家一个技巧:一般可以通过英文意思来判断参数的含义,例如subjectlen,是subject length,即:主题长度。
May 18
在显示flash的代码中添加如下一句话就ok了。
<PARAM NAME=wmode VALUE=opaque>
May 15
0、关于绝对路径和相对路径

1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路径。另外关于URI,URL,URN等内容,请参考RFC相关文档标准。RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(http://www.ietf.org/rfc/rfc2396.txt)2.关于JSP/Servlet中的相对路径和绝对路径。2.1服务器端的地址服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)

1、request.getRealPath

方法:request.getRealPath("/")
得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\

方法:request.getRealPath(".")
得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\.

方法:request.getRealPath("")
得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest

request.getRealPath("web.xml")
C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\web.xml

2、request.getParameter("");
    ActionForm.getMyFile();

方法:String filepath = request.getParameter("myFile");
得到的路径:D:\VSS安装目录\users.txt

方法:String filepath = ActionForm.getMyFile();
得到的路径:D:\VSS安装目录\users.txt


--------------------------------------------------
strutsTest 为工程名

myFile 在ActionForm中,为private String myFile;
在jsp页面中:为

--------------------------------------------------
Tags:
分页: 1/11 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]