`
eggbucket1
  • 浏览: 76477 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论
文章列表
package com.jadyer.callback; /** * 回调演示的伪代码 * 这个类就相当于是我们自己写的应用程序 */ public class CallbackDemo { public static void main(String[] args) { PersistManager persistManager = new PersistManager(); persistManager.persist(new HibernateCall ...
请先看两段代码 package com.jadyer.base; public class User implements java.io.Serializable{ private static final long serialVersionUID = 2035637204889097968L; private Integer age; public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } ...
以下是web.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j ...
<%@ page language="java" contentType="image/jpeg" pageEncoding="UTF-8"%> <%@ page import="java.awt.Color, java.awt.Font, java.awt.Graphics, java.awt.image.BufferedImage, javax.imageio. ...
package com.jadyer.detail; /** * String对象与StringPool之间的是是非非 * @author 玄玉 * */ public class StringPoolTest { public static void main(String[] args) { //【执行完该行代码,会在内存中生成两个对象,二者的内容都是abc】 //第一个对象在StringPool中,第二个对象在Java堆内存中 //注意:这里的s不是对象,s是对象的地址,叫做引用,它指向的是堆内存中的对象 //而StringPoo ...
首先是DOM编程实现的 <script language="JavaScript"> /* 下面的JavaScript代码将实现增加和减少上传图片数量的功能 */ var uploadShowed = 0; /* 单击页面中【more】按钮将执行该方法 */ function clickMore(){ if(0<=uploadShowed && uploadShowed<4){ uploadShowed++; //增加一张图片上传,但是最大不能大于5张图片 document.all ...
以下是在Struts2中上传文件时用到的UploadAction的配置信息<action name="upload" class="com.jadyer.action.UploadAction"> <result name="success">/upload/result.jsp</result> <result name="input">/upload/upload.jsp</result> <interceptor-ref nam ...
下面略述com.opensymphony.xwork2.ActionSupport.getText()方法public String getText(String aTextName)说明:Gets a messages based on a message key,or null if no message is foundParameters:aTextName-the resource bundle key that is to be searched for得到一个基于key的消息,如果没有找到这个消息则返回null参数:aTextName是在资源包寻找到的所匹配的key小结:该方法用来 ...
Struts2的拦截器 在struts-default.xml中定义了很多拦截器,这些拦截器就是用来完成许多强劲功能的保证 而且可以根据已定义的若干拦截器中的某几个拦截器构建成interceptor-stack拦截器栈 其实拦截器栈还可以由拦截器栈组成。即从Struts2高层的角度来看,二者没有什么区 别 我们可以在<package/>中增加这样一行<default-interceptor-ref name="拦截器的名字"/> 即表示将该拦截器作为整个包的默认拦截器,它会自动附加到我们的每一个Action中 并且在一个<pac ...
Struts2的结果类型 在struts-default.xml中定义了Struts2内置的所有可用的<result-type/> 所有的Struts2结果处理类都要直接或间接的实现com.opensymphony.xwork2.Result接口 在struts-default.xml中的<result-types/>里面,有这样一行声明Deprecated name form scheduled for removal in Struts 2.1.0. The camelCase versions are preferred.即:不建议使用以下两种结果类型,在St ...
单元测试在开发中是非常重要的一个环节 程序员在写完代码时,相应的单元测试也应写完整,否则你的代码就是不能让人信服的 Struts2将Action与Servlet的API进行解耦之后,就使得单元测试变得非常容易了 比如HttpServletRequest对象,它是由Tomcat容器给我们提供的,我们自己产生不出来 若Action中充斥者ServletAPI,哪怕仅一个,那么一般意义上的JUnit单元测试便无法进行 若Action中耦合了ServletAPI,可以采用apache的Cactus对它进行测试,这要稍微麻烦些 另外也可以采用Mock,它本身是模拟的Servlet的API的一些 ...
Struts1.X中ActionForm的争议 其实对于用Struts1.X进行开发过的人已经知道:ActionForm是Struts1.X中争议最大的一部分 ActionForm本身是一个抽象类,若想将客户端提交的信息自动变成对象赋予到Java类中 就必须提供一个自定义类,让它继 ...
struts.xml中的<include/>标签 当系统变大后,可能会导致struts.xml 内容非常多,这时我们就可以采用模块化 的方式 将不同的配置文件分散在不同的配置里面,然后由struts.xml将它们统一的加载进来 比如struts_1.xml 、struts_2.xml 、struts_3.xml 三个文件,分别是针对不同模块的配置 最后就可以由struts.xml统一将其整合起来,整合的方式就是把这它们包含进来即可<include file=&quo ...
struts-default.xml和default.properties是Struts2非常重要的两个默认的配置文件 在org.apache.struts2包中的default.properties中定义了许多Struts2的全局属性 我们可以在struts.xml中使用<constant/>修改这些全局常量,以实现我们的某种目的 其 ...
Struts2的Action在实现com.opensymphony.xwork2.Preparable接口后,就可以重写prepare()方法 此时在Action中,prepare()方法的执行点是在:setXxx()和execute()的执行之前 比如需求:在执行Action的方法前,接收前台隐藏域传过来的值,再根据该值执行相应逻辑 如前台传过来ID,我们根据ID查找数据库对应的用户信息,再跳转到modify()中修改信息 但实际的运行过程中发现,通过Debug断点调试得知prepare()方法接收到的ID值是零 即前台隐藏域中的ID值没有传过来,事实上问题就出在默 ...
Global site tag (gtag.js) - Google Analytics