Struts的学习日志

2005-6-11
  1. 如果配置文件中不写<message-resources parameter="XXXX"/>,<bean:write>死活会报错。

2005-6-13
  1. 知道了iterate中奇偶行的取法:
     <logic:iterate id="item" indexId="ind" name="saleplanitem">
       <% if(ind.intValue()%2==0){%>
         <tr bgcolor="#FFFFF9" height=25>
       <% } else { %>
         <tr bgcolor="#FFFFC9" height=25>
       <% } %>
      据说写成下面也可以,但我没有试成:
       <% request.setAttribute("bgColor", (ind.intValue()%2) == 0 ? "#FFFFF9" : "#FFFFC9"); %>
       <tr bgcolor="<c:out value="${bgcolor}"/>" height=25>

  2. 知道了如何在input中结合bean:write命名变量
       <input type="checkbox" name="pn_<bean:write name="item" property="productNo"/>"
       value="<bean:write name="item" property="productNo"/>">

  3. 清楚了页面流转的一点思路:
       a.jsp->testaction.do->b.jsp
       在a.jsp可以<html:link page="/testaction.do">测试一下</html:link>
       在配置文件中:
       <action path="/testaction" type="plan.testAction" scope="request">
          <forward name="OK" path="/b.jsp"/>
       </action>
       在testAction.java中写:return (mapping.findForward("OK"));

       如果在a.jsp要改成用:<html:link forward="test">测试一下</html:link>
       则在配置文件中需:<forward name="test" path="/testaction.do"/>

  4. 如果用传统的<form,但又要提交到action里,可以这样写
     <form action="testaction.do" method="post">
         <input type=submit name="SUBMIT" value="测试一下">
       </form>
     但是,你的这个页面文件要注意路径问题,即使你在<head>中有<html:base/>
     你还是需要将<html></html>对改成<html:html></html:html>,尽管使用<html:link>是没有问题。但这里必须这样,否则路径不对。
     还有,action里面的前面不要加"/",同样的,如果将<html:link page="/testaction.do">改成传统的<a>,则应该如下写:
     <a href="testaction.do">
 
2005-6-14
   1. 在Struts控制器中,不能判断session是否为空,能执行到,session永远不为空.
     故如下:
        HttpSession session = request.getSession(false);
 if(session==null){...}是无效的。
    而要判断某个session中的属性值是否有。

   2. 标签里面不能嵌套标签,可以用其它等效的东东来解决:
      如:<html:link page="/SalePlanItem.do?plan=<bean:write name="sp" property="planNo"/>">
 上面是不行的,可将"<html:link page="/"改为:"<a href="即可。(注意:link的page后有/,而href是不需要的.)
 当然,一定要用html:link,也可以:
    <html:link page="/SalePlanItem.do" paramId="plan" paramName="sp" paramProperty="planNo">
    
   3. 经常犯的错误:
        字符串比较是否相等,不能用"==",而只能用"equals"。
 "=="比较的是两个对象的地址是否相同,而"equals"才是比较两对象的值是否相等。

2005-6-15
   1. 判断checkbox是否选中有两种办法:
     a.将checkbox中的name设置为一致,用不同的value。选中了的,会放在一个数组中。
          <input type=checkbox name=chk value=1>A
   <input type=checkbox name=chk value=2>B
       判断所选的值可以用:String[] t = request.getParameterValues("chk");
       如果选上了A,则t[0]=1。
     b.将checkbox中的name设置为不一致。
          <input type=checkbox name=chk1 value=1>A
   <input type=checkbox name=chk2 value=2>B
   判断是否选中,可以用:String t = request.getParameter("chk1");
   如果 t==null 表示没有选上。
   2. javaScript的检查办法
      var k = 0;
      var m = document.getElementsByName("isSelected");
      for(var i=0;i<m.length;i++){ if(m[i].checked) k++;}
      if(k<1) alert("没有选中一个");
      但记录太多时会很慢。

2005-6-16
    1. 在Struts的路径方向上,最好不要连续两次用Action,而要与jsp交替一次。
         <action path="/showSalePlan" type="plan.showSalePlanAction" scope="request">
           <forward name="Success" path="/showSalePlanResult.jsp"/>  
         </action>
         <action path="/genSalePlan" type="plan.genSalePlanAction" scope="request">
           <forward name="Success" path="/showSalePlan.do"/>
         </action>
         <action path="/adjSalePlan" type="plan.adjSalePlanAction" scope="request">
           <forward name="Success" path="/showSalePlan.do"/>
         </action> 
       以上会在如下步骤c上系统将得不到响应。
         a.welcome.jsp->showSalePlan.do->showSalePlanResult.jsp
         b.genSalePlan.do->showSalePlan.do->showSalePlanResult.jsp
         c.adjSalePlan.do->showSalePlan.do->showSalePlanResult.jsp
       可以写一个jump.jsp,用它来过滤一下。
         <logic:forward name="jump"/>
       然后配置改为:
         <global-forwards>
           <forward name="jump" path="/showSalePlan.do"/>
  </global-forwards>
        
         <action path="/genSalePlan" type="plan.genSalePlanAction" scope="request">
           <forward name="Success" path="/jump.jsp"/>
         </action>
         <action path="/adjSalePlan" type="plan.adjSalePlanAction" scope="request">
           <forward name="Success" path="/jump.jsp"/>
         </action> 
       就是必须要一个Action后一个JSP交替出现。

    2. 发现新的好东东:Cocoon (考库)

2005-6-17
    1. 今天拿了一个cocoon.war放在Tomcat中,居然不能启动。
    2. Web简单的打印:
    <iframe name="content" src="print.htm" frameborder=1 scrolling=yes width=600 HEIGHT=400>
    </iframe>
        <input type=button name="print" value="print"
          οnclick='parent.content.document.execCommand("Print", true);'>

2005-6-18
    1. 今天想把Hibernate配置起来试试,但最终还是没有成功,可能要到公司上网一步步去学。
    2. 将JSF下的一个jsf-cardemo.war放在Tomcat下,终于可以运行起来了。但是,初步感觉JSF的标签不及Struts的标签那么好用,也许JSF还没有入门。

2005-6-19
    1. 发现一个工具htmlConverter,它可以将HTML中的Applet标签以Object代替,这样,客户浏览运行时,没有JRE时会自动从SUN站点下载。
      它是以插件的形式出现的,JDK自带了demo程序,里面就有。
      报表程序能以这种形式做,写一个ActiveXForm,然后就由它来处理行了。
    2. 中午在书店里看了一下书,了解目前的一些Java技术:Struts,JSF,Hibernate,Eclipse都能在书店找到相关的书,但Spring好像还没有一本书。
      实际上,编程只是软件中很小的一部分,开源的东西多得可以不花一分钱就能把这些组合成产品,所以说,当一个技术人员编程到一定程度,如果不是
      搞那些专门而开创性的应用,软件编程已经是次要的了,关键就在于软件项目的规划与全程管理。其次,还应该要去提高某个行业的业务水平。

2005-6-20
   1. 今天主要尝试做了一个使用ReportMachine的ActiveXForm,然后放在HTML中运行试看.
      <body topMargin=1 leftMargin=1>
      <OBJECT id=MyViewer
   classid="clsid:B8B82200-9E3E-471B-938A-3B3F38DF86BA"
   codebase="/TestProj.cab#version=1,0,0,0"
   height=100%
   width=100%
      />
      如果在IE中,还是可以看得到,但是用Firefox就不能运行了。
      ActiveX仍然在IE中,总是会弹出一个安全确认框,后来找了一个解决办法,就是VB中说要实现IObjectSafety安全接口。

    2. 如果你不想把WEB放在webapps,可以自己写一个配置文件放在conf/Catalina/localhost下面。

2005-6-21
   1. 今天主要是培训,培训时知道:
       private String name;    // 只是一个变量
       public void setName(..) // 定义了属性
       public String getName() // 定义了属性
       定义属性的那个值在set,get方法中第一个字母是大写,
       而它的属性在外面使用时第一个字母小写。实际上变量是可以是其它的。
  
   2. 按网上介绍的做了一个数字签名的过程。
     a). 得到.net下的makecert.exe,cert2spc.exe,signcode.exe三个文件.
     b). 用makecert制作cert证书,makecert x.cer -sv x.pvk -n "CN=发行者名称" //x.cer,x.pvk是你取的一个空文件名
     c). 用cert2spc转换cert证书,cert2spc x.cer x.spc     //x.cer是由上面制作出的,x.spc是新的。
     d). 运行signcode进行数字签名,然后会弹出界面,要加入.cab的ActiveX文件。
     这样,制作的就OK了。

2005-6-23
   1. 今天看了一下工作流的开源产品,好像说Jbpm应该是最好的了。
   2. 我搞的那个数字签名ActiveX,如果客户端没有.net环境,则会出错,不知道是什么原因?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值