http://blog.sina.com.cn/jiweihlc[订阅]
字体大小: 正文
Struts标记库-HTML标记库(2009-07-10 15:54:07)

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

 

html常用控件

 

(1)文本框

<html:text property="username" size="15"/>

<html:password property="userpass" size="15"/>

property是name属性

 

(2)单选按钮

<html:radio property="sex" value="男"/>男
<html:radio property="sex" value="女"/>女

 

(3)复选框

<html:multibox property="love" value="读书"/>读书
<html:multibox property="love" value="旅游"/>旅游
<tml:multibox property="love" value="上网"/>上网

 

接收值

form:

private String love[];

action:

String like[]=frm.getLove();

String alllike=null;
        for( int i=0;i<like.length;i++ )
        {
            if( alllike==null )
            {
             alllike=like[i];
            }
            else
            {
                alllike=alllike + "," + like[i];
            }
        }

 

(4)下拉列表

<html:select>用来在网页上产生选择列表。通常它与<html:option>等选项标记连用。示例代码如下:

 

<html:select property="testString" size="1">
 <html:option value="value1">Show Value1</html:option>
<html:option value="value2">Show Value2</html:option>
<html:option value="value3">Show Value3</html:option>
<:html:submit property="submit" value="提交"/> </html:select>

 

<html:select>有一个size属性,它表示同时显示的选项的数目,如上例中的size为1,则只同时显示一个选项。还有一个multiple属性,当其为true时,该选择列表就允许多选。用户可以通过鼠标的拖动,或是按住Ctrl键进行多选。

 

赋多值

<%
ArrayList list = new ArrayList();
list.add(new org.apache.struts.util.LabelValueBean("学生1", "学生2"));
list.add(new org.apache.struts.util.LabelValueBean("教师1", "教师2"));
list.add(new org.apache.struts.util.LabelValueBean("记者1", "记者2"));
list.add(new org.apache.struts.util.LabelValueBean("军人1", "军人2"));
pageContext.setAttribute("abc",list);
%>


<html:select property="work">
  <html:options collection="abc" property="value" labelProperty="label"/>
</html:select>

 

接收值

form

private String work;

action

String work=frm.getWork();


(5)按钮

<html:submit value="注册"/>

<html:reset value="重置"/>

 

(6)图片

<html:img>标记是用来显示图片的,它的用法很简单,如下所示:

<html:img page="/a.jpg"/>

 

(7)表单

<html:form>标记生成页面表单,这个由Struts标记生成的表单和普通的HTML表单略有不同。

 

<html:form action="/test.do">

其中action属性后跟的是一个在struts-config.xml文件中定义的Action,而这个Action也必定要对应一个ActionForm才能完成其应有的功能。所以,对每个<html:form>标记来说,都该对应一个ActionForm。而这个ActionForm中的属性值也将和网页上的<html:form>表单中的各个表单项相对应。这些表单相将会是类似于<html:text>的一些表单元素。

 

<html:form action="/test.do">
   输入字符串testString:<html:text property="testString"/>
   提交:<html:submit property="submit"/>
</html:form>
此处值得注意的一点是,在<html:form>表单中的各个表单项一定要在ActionForm可以找到一个对应的项,这样才能在提交的时候进行赋值,否则,Struts将会报一个错,显示无法找到某表单项在ActionForm的对应get方法

 

(7)超链接

普通超链接

<html:link href="/StrutsTagPrj/html/1.jsp">1.jsp</html:link><br />
<html:link page="/html/2.jsp">2.jsp</html:link><br />
<html:link forward="aa">3.jsp</html:link><br />

<html:link href="/StrutsTagPrj/htmlbasic.do">用action处理链接(href)</html:link><br />
<html:link page="/htmlbasic.do">用action处理链接(page)</html:link><br />
<html:link forward="myaction">用action处理链接(forward)</html:link><br />

forward="myaction"在.xml中得有名字为myaction的全局跳转

 

带参数超链接

1个参数

<%
TestBean bean1=new TestBean();
bean1.setId(10);
request.setAttribute("mybean",bean1);
%>
<html:link page="/htmlbasic.do"
   paramId="page" paramName="mybean" paramProperty="id">

paramId参数名 paramName实体 paramProperty传参实体的属性

接收

request.getParameter("page")

多个参数

<%
  java.util.HashMap map = new java.util.HashMap();
  map.put("page", "2" );
  map.put("array",new String[] { "str1", "str2", "str3" } );
  pageContext.setAttribute("map1", map);
%>
<html:link page="/htmlbasic.do" name="map1">
根据map生成url参数
</html:link><br/>

接收

request.getParameter("page");
request.getParameterValues("array")[0];
request.getParameterValues("array")[1];
request.getParameterValues("array")[2];

 

(8)上传下载

<html:form action="upload.do" method="post" enctype="multipart/form-data">
姓名:<html:text property="username"/><br>
照片:
<html:file property="file"/><br/>

<html:submit value="提交"/>
</html:form>

接收

form

private FormFile file;
private String username;

action

UploadForm uploadForm = (UploadForm) form;

//得到上传文件的文件名
//注意FormFile类

        FormFile file=uploadForm.getFile();
        String filename=file.getFileName();

//得到上传文件的文件扩展名
        int offset=filename.lastIndexOf(".");
        String ext=filename.substring(offset+1);

//得到要保存的文件名
        String filename2=username + "." + ext;
        System.out.println("filename2=" + filename2);

//获得上传文件在服务器的保存路径(绝对路径)
        String filepath=this.servlet.getServletContext().getRealPath("photos");
        String filename_out=filepath + File.separator +filename2;

//(C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\StrutsTagPrj\photos\.jpg)

//在服务器上保存文件(上传的用户姓名.xxx)
        try
        {
            InputStream in=file.getInputStream();//输入流
            FileOutputStream out=new FileOutputStream(filename_out);//输出流
            byte array1[]=new byte[1024];
            int len=0;
            while( (len=in.read(array1))>0 )
            {
                out.write(array1,0,len);
            }
            in.close();
            out.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

 

(9)取消按钮

<html:cancel>标记将在网页上生成一个"取消"按钮,用户可以通过点击它触发一个取消事件。这个取消事件通常是在用户已经点击了"提交"按钮后,又临时想取消这次提交时生成的。因此,"取消"按钮并不只是简单的页面效果,而要深入后台,其实也就是调用一个Action来对用户的提交进行处理,做一些清除的工作。<html:cancel>按钮要使用在一个表单内部,可以用以下两种方式来使用该标记:

<html:cancel>Cancel</html:cancel>

<html:cancel property="org.apache.struts.taglib.html.CANCEL" value="Cancel"/><br>

action

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception

{
        .....
        if (super.isCancelled(request)){
           return mapping.findForward("cancelled");
        }
        ......
}

 

 

加载中,请稍候...
  • 评论加载中,请稍候...

验证码:请点击后输入验证码  收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...