Snowdream

I'm awake but my world is half asleep
posts - 398, comments - 234, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2007年5月2日

1. CSS控制input标签的风格有点麻烦,google到了一种在css中使用三元判断语句的方法:
1input {
2    width: expression(this.type!="submit"?'150px':'');
3    height: 23px;
4}

2. 循环<c:forEach var="i" begin="1" end="${pages}">
 
3. 分支
1<c:choose>
2  <c:when test="${boolean1}"></c:when>
3  <c:when test="${boolean2}"></c:when>
4  <c:otherwise></c:otherwise>
5</c:choose>


4. DisplayTag 标签库
这东东真不错,支持奇偶数行css分离、自动换页等功能。
a) <display:table name="test" />
这样一行代码就能自动列出test内的所有属性了。
b) 如果要只列出指定的列,可以使用

<display:table name="test">
   
<display:column property="id" title="ID" />
   
<display:column property="name" />
   
<display:column property="email" />
   
<display:column property="status" />
   
<display:column property="description" title="Comments"/>
</display:table>

c) 指定某一列的样式:<display:column property="id" title="ID" class="idcol"/>
d) 创建简单的动态链接
<display:column property="email" href="details.jsp" paramId="action" paramName="testparam" paramScope="request" />
这样只能产生details?action=xx的链接

d) 自定义动态链接
写一个类,继承org.displaytag.decorator.TableDecorator
package util;

import org.displaytag.decorator.TableDecorator;

public class Decorator extends TableDecorator {
  
public String getEditLink() {
    beans.Policy p 
= (beans.Policy)getCurrentRowObject();
    
int pId = p.getId();
    
return "<a href=\"servlet/editItem?id=" + pId + "\">@</a>";  
  }

}
然后在jsp中声明这个Decorator
<display:table name="policies" id="PolicyList" decorator="util.Decorator">
增加相应的列
<display:column title="Edit" property="editLink"/>
e) 生成的html代码中奇偶数行的类分别为.odd和.even,在CSS中就能区分它们了。
f) 分页
display:table 中加个属性pagesize="10"即可,不过觉得这部分还是在数据库中解决比较高效。
g) 排序
列中的对象要实现Comparable接口,没有的话可以使用Decorator
display:table 中的属性
defaultsort="1"   默认以第一列为主键排序
defaultorder="descending"  递减
也可以在display:column中增加属性sortable="true" headerClass="sortable"
官方给出的sample中的那个sortable列表头很漂亮,有两个小按钮选择排序方式。

posted @ 2007-05-02 13:35 ZelluX 阅读(316) | 评论 (0)编辑 收藏

2007-3-11

1. 字符串:
a) 使用三引号(’’’或”””)用来指示多行的字符串,其中可以自由的使用单引号或双引号。
b) 自然字符串:在字符串前加上r或R,表示不需要转义符特殊处理。
c) Unicode字符串:串前加u。
d) 和Java一样,字符串不可变。
e) Python没有专门的char类型。
f) 使用正则表示式时,建议使用自然表达式处理。
2. 标识符:必须以字母或下划线起始,其他部分可以有数字,大小写敏感。
3. 行:
a) 每个Python程序都有一些逻辑行(logical liens)组成,后者通常由若干物理行(physical lines)组成。
b) 每个物理行都可以由一条注释结束,不在字符串中的#符号表示一条注释。
c) 在一个交互解释界面中,必须通过输入空行来结束多行语句。
d) ; 可以用于分割一物理行中的不同逻辑行,但Python中很少出现 ;
e) 转义符 \ 也可以用于行末表示在下一行继续。
4. 缩进:
a) 缩进对于Python中很重要,错误的缩进很有可能会引发错误。
b) 同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。
5. 运算
a) // 返回商的整数部分,即Java中的 \
b) 比较运算符可以被任意连结,如3<5<7返回True。
6. 控制流
a) raw_input(‘Input a number: ‘) 将字符串输入到屏幕上,并等待用户的输入,返回字符串。有点像Basic的input。
b) if 语句中elif相当于else if。一个简单的if语句:
if True:
    print ‘It is true’
c) Python中没有switch语句,使用if-elif-else代替。
d) while, for语句中也可以有else:,注意与while, for对齐
e) for i in range(1, 5)
依次循环i=1, 2, 3, 4
range()返回一个序列的数,包括1,不包括5。另外可以再增加一个步长参数,如range(0, 4, 2)生成0和2
f) break语句跳出后,else语句不被执行。
7. 函数
a) 形参:函数头中声明的参数;实参:提供给函数调用的参数。
b) 函数块并不会修改块外参数的值。可以使用global语句声明为全局变量,但应尽量避免。
c) 默认参数值:直接在函数头中赋值。但只有在末尾的参数才可以有默认值。
d) 关键参数。

posted @ 2007-05-02 01:09 ZelluX 阅读(247) | 评论 (0)编辑 收藏

开始做05Web应用课的Project3。
主要为了实践下EL/JSTL,以及用servlet + jsp + javabean的mvc架构;SQL嘛上学期学过,Core Java II里介绍得也比较详细,所以直接用Hibernate持久层解决问题了。

1. jsp里form action指向的路径居然打成了"servet/loginServet",然后tomcat报错。查了好一会儿web.xml也没发现什么问题,然后很郁闷的发现居然是jsp里路径写错了 

2. 登录jsp递交到servlet时如何隐藏用户名密码呢?


3. admin登录后要显示Policy列表。我建了个beans.Policies类,然后在控制器servlet中
List policies = beans.Policies.getPolicies();   //还没实现分页功能
然后再setAttribute递交给显示页面。
觉得不应该这么做,尽管的确是mvc分离了,但很占资源,而且貌似Policies类每处理一次请求都要访问一次数据库,不知道有没有更好的方法。JavaBean?

4. Policy列表行颜色深浅相间的效果。在饮水思源上看到过类似的问题,貌似正规的做法是自定义标签。。。

posted @ 2007-05-02 01:05 ZelluX 阅读(259) | 评论 (0)编辑 收藏