taglib-html:浏览器会自动解析

引用:

<%@  taglib uri="http://jakarta.apache.org/struts/tags-html" profix="html"%>

jsp页面使用

 生成一个元素

 生成一个元素
	 生成一个元素
	login
	
	由struts-config.xml中的全局转发创建链接
		
			
		
	在jsp页面创建链接
		
			Link to ActionForward
		
		
	在url全路径创建链接:提供全路径
		  
			Link to baidu
		
		
	由当前页面的相对路径创建链接
		
			Link to page
		
标签URI部分

生成一个元素



生成一个
元素 jsp页面创建form属性 Formbean里面添加类ClientForm struts-config里面配置文件 生成一个文本的Input元素 username
Formbean里面Form类添加属性:username 生成一个文本的Input元素 Formbean里面Form类添加属性:userid 生成一个文本的Input元素 生成一个文本的Input元素 生成一个文本的Input元素 生成一个有单选左右的按钮,比如协议是否同意的时候选择 jsp页面创建 ispay: Formbean里面Form类添加属性: private String pay 打钩: on 不打勾: 什么都没有 了解,用的不多 生成一个多选按钮 jsp页面 hobbyreading
swing Formbean里面Form类添加属性: private String[] hobby 生成一个有单选按钮 jsp页面 gender:female
man Formbean里面Form类添加属性: private String gender 生成一个下拉列表 在jsp页面 CEO CFO PM Formbean里面Form类添加属性: private String position 从数据库获得值生成响应标签 FormBean里面有Position(String id,String name) jsp的里面测试,实际应该从数据库里拿到list,在action里面赋值 顶部 <%@ language="java" import="com.amaker.bean.*,java.util.*"%> head里面——<% Link list=new ArrayList(); for(int i=0;i<10;i++){ Position posi=new Position(i,"position"+i); list.add(posi); } request.setAttribute("PL",list); %> jsp的里面 id对应formbean里面position表单的id,name对应的值 jsp页面 手动验证: FormBean的类里面继承ActionForm,需要重写一个 validate方法,只有这个方法通过,才可以执行Action,大部分时间写在这里 顺序: 先xml里面的*.do,找到struts-config.xml里面的path跳转路径,然后执行name的FromBean获得值, 获得值之后验证信息,最后执行Action public ActionErrors validate(...){ ActionErrors errors=new ActionErrors(); if(username==null||username.trim().equals("")){ errors.add("username",new ActionMessage("login.username")); //"username"标签,响应jsp里面的错误标签 login.username在资源配置文件中的提示错误信息 return errors; } return null; } return errors 返回struts-config里面的input路径 如果在Action里面做验证,如果错误需要 返回:mapping.getInputforward(); 自动验证: 1 添加struts后项目内需要添加2个jar包:commos-validator.jar 和 jakarta-oro.jar 2 添加2个xml配置文件: validation.xml 和validator-rules.xml validation.xml可以去structs里面的apps/struts-blank-1.3.8\WEB-INF下面找模板,如果模板里面有"另"一个列子,则删除,否则可能会报错 3 在Struct-config.xml配置文件中加载自动验证工具类和配置文件,这段话在validator-rules.xml里面有: 4 formBean要继承ValidatorForm 5 在validation中声明验证 6 调用 在ApplicationResources.properties配置文件里: errors.minlength={0} can not be less than {1} characters. login.username=Username validation.xml //name是struts-config.xml里面的name maxlength 20 mixlength 1 maxlength 150 name:验证FormBean名称,struts-config里面定义的名称 property:验证FormBean的属性 depends:验证规则的逻辑名称 key:验证提示信息 resource: true:来自资源文件 false:直接设置 var:为变量传递参数 loginForm需要继承 ValidatorForm validator: required,minlength,maxlength,mask:正则表达式,byte,short,integer,long,float,double,date, intRange,floatRange,doubleRange,creditCard,email,url 自定义验证:验证两个字段是否相同 配置文件: secondProperty password2 写一个类: public static boolean validateTwoFields(Object bean,ValidatorAction va,Field field,ActionMessages errors,HttpServletRequest request){ String value=ValidatorUtils.getValueAsString(bean,field.getProperty()); String property2=field.getVarValue("secondProperty"); String value2=ValidatorUtils.getValueAsString(bean,property2); if(!GenericValidatior.isBlankOrNull(value)){ try{ if(!value.equals(value2)){ errors.add(field.getKey(),Resources.getActionMessage(request,va,field)); return false; } }catch(Exception e){ errors.add(field.getKey(),Resources.getActionMessage(request,va,field)); return false; } } return true; }

File

生成一个元素来支持文件上传
	Jsp页面,必须是enctype="multipart/form-data",一个字都不能差
		
			File:
		
		
	Formbean里面Form类添加属性
		private FormFile file;
		
	eg:
	FormFile file=uploadForm.getFile();
	InputStream in=file.getInputStream();
	String fileName=file.getFileName();
	int size=file.getFileSize();
	//得到真实路径
	String path=super.servlet.getServletContext().getRealPath("/upload");
	OutputStream out=new FileOutputStream(path+"\\"+fileName);
	byte[] buf=new byte[size];
	in.read(buf);
	out.write(buf);
	in.close();
	out.close();



解决验证信息中的中文乱码问题

创建build.xml文件
	调用native2ascii.exe进行转码
	代码:
	
		
			
		
	



你可能感兴趣的:(Struct1.x)