锁定老帖子 主题:struts学习笔记(标签)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-10
Struts标记分为(5组) <html:form action="reg.do" method="post"> 用户名 <html:text property="username"/> 密码 <html:password property="userpass"/> <html:radio property="gender" value="0"/>男 <html:radio property="gender" value="1"/>女 复选 爱好 这里返回的是一个数组,一般为String[] <html:multibox property="hobby" value="看书"/>看书 <html:multibox property="hobby" value="睡觉"/>睡觉 <html:multibox property="hobby" value="编程"/>编程 下拉 LabelValueBean lvbean=new LabelValueBean(); lvbean.setLabel(""+i); lvbean.setValue(""+i); list.add(lvbean); 年龄 (它比较特殊,必须用到集合对象才可以往标签里添加下拉数据,它是以LABLE与 VALUE存取) <html:select property="age"> <html:options collection="list" labelProperty="label" property="value"/> </html:select> 备注 <html:textarea property="memo" rows="5" cols="60"/> 隐藏 <html:submit>提交</html:submit> or <html:submit value=”提交”/> <html:reset>清除</html:reset> <html:cancel>取消</html:cancel>
//判断是否点击了"取消"按钮 boolean flag=this.isCancelled(request); if(flag){ //如果点击了"取消"按钮 return mapping.findForward("reg"); //重定向到注册页(想用重定向必须在struts-config.xml中配置属性 //<forward name="reg" path="/reg.jsp" redirect="true" /> } <html:form action="upload.do" method="post" enctype="multipart/form-data"> <html:file property="photo"/> 它对应的ActionForm的类型为org.apache.struts.upload.FormFile; public String changeGbk(String str){ String newstr = null; try { newstr = new String(str.getBytes("ISO8859-1"), "gb2312"); } catch (UnsupportedEncodingException ex) { } return newstr; } UploadActionForm uploadActionForm = (UploadActionForm) form; //接收内容并且存盘(web\photos) FormFile photo=uploadActionForm.getPhoto();//获得请求文件的内容FormFile try { InputStream in=photo.getInputStream();//通过上传文件对象获得输入流 String filename=photo.getFileName();//常用方法,获得上传文件的文件名 String path=servlet.getServletContext().getRealPath("photos"); //通过servlet获得服务器上下文对象获取指定目录的绝对路径 如:d:\regprj\Web\photos String newfilename=path + File.separator + filename; //拼装要创建的文件全路径及文件名File.separator方法会根据系统自动选择’/’or’\’ 如:d:\regprj\Web\photos\updatefile.jpg FileOutputStream out=new FileOutputStream(newfilename);//把路径给文件输入流对象 byte[] array1=new byte[1024];//设置缓冲大小,单位:字节 int len; while( (len=in.read(array1))>0 ){ out.write(array1,0,len); } out.flush(); out.close(); in.close(); photo.destroy();//销毁文件; } catch (Exception ex) { ex.printStackTrace(); } UploadActionForm uploadActionForm = (UploadActionForm) form; //接收内容并且存盘(web\photos) FormFile photo=uploadActionForm.getPhoto();//获得请求文件的内容FormFile try { String filename=photo.getFileName(); String path=servlet.getServletContext().getRealPath("photos"); String newfilename=path + File.separator + filename; FileOutputStream out=new FileOutputStream(newfilename); out.write(photo.getFileData()); out.flush(); out.close(); photo.destroy();//销毁文件; } catch (Exception ex) { ex.printStackTrace(); } 区别就是两个方法使用的读取源二进制文件的方式不同。以上为黄色代码部份。 <html:link href="index.jsp">回主页</html:link><br /> <html:link forward="index">回主页</html:link> 在<form-beans>后添加以下配置 <global-forwards> <forward name="index" path="/index.jsp" /> </global-forwards> 两个黄红代码中要配合一起才起使用 <bean:write scope="request" name="regActionForm" property="username"/> Scope为请求数据存储在哪个范围,name就是请求的表单名,如:<form-bean name="regActionForm"。。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-17
我一般不太建议表单用标签,表单还是原生的HTML好。
|
|
返回顶楼 | |
发表时间:2008-10-18
使用JSTL就已经不错了。
|
|
返回顶楼 | |
发表时间:2008-10-18
不太建议使用UI表单,对性能的影响比较大,建议使用HTML自己的标签。
|
|
返回顶楼 | |
浏览 5328 次