随笔-8  评论-8  文章-10  trackbacks-0
        在早期jsp的开发中会用到大量的Scriptlet代码,这样造成了jsp页面维护性和可读性的下降,而Struts所带的标签库在一定程度上解决了此问题,所以我们提倡使用标签而不是用Scriptlet。

三、html标签
    html标签种类很多,而且也没有什么难度,常用的有
    <html:form>
    <html:text>
    <html:password>
    <html:textarea>
    <html:submit>
    <html:reset>
    <html:button>
    <html:select>
    <html:option>
    <html:radio>
    <html:checkbox>
    
    着重介绍几个需要注意的标签
1.<html:radio>
    a.创建jsp文件
<%@ page language="java" pageEncoding="utf-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  
<head>
    
<title>html01.jsp</title>
  
</head>
  
  
<body>
    
<html:form action="test.do" method="post">
        Male
<html:radio property="gender" value="male"></html:radio>
        Female
<html:radio property="gender" value="female"></html:radio><br>
        
<html:submit></html:submit>
    
</html:form>
  
</body>
</html:html>
b.创建ActionForm 与 Action
TestForm中 唯一的属性就是gender
package com.yourcompany.struts.form;

import org.apache.struts.action.ActionForm;

public class TestForm extends ActionForm {
    
private String gender ;

    
public String getGender() {
        
return gender;
    }

    
    
public void setGender(String gender) {
        
this.gender = gender;
    }

}

TestAction中 只打印gender
package com.yourcompany.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.yourcompany.struts.form.TestForm;

public class TestAction extends Action {
    
    
public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
{
        TestForm testForm 
= (TestForm) form;// TODO Auto-generated method stub
        System.out.println(testForm.getGender());
        
return null;
    }

}

c.配置struts-config.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  
<data-sources />
  
<form-beans >
    
<form-bean name="testForm" type="com.yourcompany.struts.form.TestForm" />
  
</form-beans>

  
<global-exceptions />
  
<global-forwards />
  
<action-mappings >
    
<action
      
attribute="testForm"
      input
="/form/test.jsp"
      name
="testForm"
      path
="/test"
      scope
="request"
      type
="com.yourcompany.struts.action.TestAction" />
  
</action-mappings>
  
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

很简单 但是有时我们需要radio有默认值
解决方法只需要在TestForm中的
private String gender;
修改成
private String gender = "male";
那么 gender的默认值就是 male了


2.<html:select>与<html:option>
a.创建jsp文件
<%@ page language="java" pageEncoding="utf-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  
<head>
    
<title>html02.jsp</title>
  
</head>
  
  
<body>
  
<html:form action="test.do" method="post">
    配件:
<html:select property="part">
        
<html:option value="cup">CUP</html:option>
        
<html:option value="motherboard">主板</html:option>
        
<html:option value="momery">内存</html:option>
        
<html:option value="cdrom">光驱</html:option>
        
<html:option value="monitor">显示屏</html:option>
    
</html:select>
    
<html:submit value="submit"/>
    
</html:form>
  
</body>
</html:html>

b.创建ActionForm 和 Action
TestForm中 唯一的属性就是part
package com.yourcompany.struts.form;

import org.apache.struts.action.ActionForm;

public class TestForm extends ActionForm {
    
private String part;
    
public String getPart() {
        
return part;
    }


    
public void setPart(String part) {
        
this.part = part;
    }

}

TestAction中 只打印part
package com.yourcompany.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.yourcompany.struts.form.TestForm;

public class TestAction extends Action {
    
    
public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
{
        TestForm testForm 
= (TestForm) form;// TODO Auto-generated method stub
        System.out.println(testForm.getPart());
        
return null;
    }

}
c.struts-config.xml文件不变

还是很简单的一个例子 同样有时我们需要select有默认值
解决方法只需要在TestForm中的
private String part;
修改成
private String part = "motherboard";
那么 part的默认值就是 主板了


每天进步一点点

posted on 2008-08-12 17:40 应越 阅读(398) 评论(0)  编辑  收藏 所属分类: struts学习

只有注册用户登录后才能发表评论。


网站导航: