• struts1.2一些知识


    struts1.2包括相关文件:

    struts-config.xml  接收action通过mapping传过来的forward,并通过对应的forward转向不同的页面

    Action  处理程序  action可以继承Action,也可以继承DispatchAction

    FormBean  用于把封装form表单中的数据


    struts1.2工作流程

    1,含输入页面,也就是form表单

    首先访问form表单页,把form表单页提交到相应的action里,然后在action里通过对应FormBean把form强制转换然后用FormBean接收,

    然后把formbean传到相应方法里,然后通过return mapping.findForward("");转到struts-config.xml里对应的forward,然后转向页面,


    例如:

    1,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="wordsForm" type="com.company.form.WordsForm" />
      </form-beans>
    
      <global-exceptions />
      <global-forwards />
      <action-mappings >
         <action
          attribute="wordsForm"
          name="wordsForm"
          path="/words"
          scope="request"
          parameter="method"
          type="com.company.action.WordsAction">
          <forward name="words" path="/form.jsp" />
        </action>
    
      </action-mappings>
      <message-resources parameter="com.company.struts.ApplicationResources" />
    </struts-config>
    
    在struts-config.xml文件里  一个action对应一个formBean

    2,WordsForm.java文件如下:

    package com.company.form;
    
    import java.util.Date;
    
    import org.apache.struts.action.ActionForm;
    
    public class WordsForm extends ActionForm  {
    
    	private static final long serialVersionUID = -686042683660710968L;
    	private Integer id;
    	private String name;
    	private String content;
    	private Date postTime;
    	private String email;
    	
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getContent() {
    		return content;
    	}
    	public void setContent(String content) {
    		this.content = content;
    	}
    	public Date getPostTime() {
    		return postTime;
    	}
    	public void setPostTime(Date postTime) {
    		this.postTime = postTime;
    	}
    	
    }
    

    3,WordsDao.java接口类

    public interface WordsDao {	
    	public void insertSave(WordsForm wordsForm);  //更新和插入	
    }


    4,WordsDaoImp.java对应的方法

    public class WordsDaoImp extends DB implements WordsDao {
    
    @Override
    
    public void insertSave(WordsForm wordsForm) {
    		String sql = "";
    		if (wordsForm.getId() != null) {
    			sql = "update words set name=?,content=?,postTime=?,email=? where id=?";
    			this.update(
    					sql,
    					new Object[] { wordsForm.getName(),
    							wordsForm.getContent(), new Date(),
    							wordsForm.getId(),wordsForm.getEmail()});
    		} else {
    			sql = "insert into words(name,content,id,postTime,email) values(?,?,?,?,?)";
    			this.insert(sql,
    					new Object[] { wordsForm.getName(),
    							wordsForm.getContent(), wordsForm.getId(),
    							new Date(),wordsForm.getEmail() });
    		}
    	}
    }
    5,WordsAction.java类

    package com.company.action;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.DispatchAction;
    
    import com.company.dao.WordsDao;
    import com.company.dao.imp.WordsDaoImp;;
    import com.company.form.WordsForm;
    
    public class WordsAction extends DispatchAction {
    	WordsDao wordsDao = new WordsDaoImp();	
    	//添加留言
    	public ActionForward insertWord(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
    		request.setCharacterEncoding("utf-8");
    		WordsForm wordsForm = (WordsForm)form;  //用WordsForm强制转换form表单
    		wordsDao.insertSave(wordsForm);    //把wordsForm添加到对应方法里
    		return mapping.findForward("words");  //转向对应mapping中的forward
    	}
    }
    

    6,输入页,form表单页 form.jsp文件如下:

    	<form action="words.do?method=insertWord" id="form" method="post">
    	<table width="398">
    	  <tr>																				<td height="25" align="left" valign="top">
         <input name="name" id="name" type="text" value="您的称呼:" onBlur="if (value ==''){value='您的称呼:'}">
    		</td>
    	  </tr>																			  <tr>																			        <td height="25" align="left" valign="top">
         <input name="email" id="email" type="text"onfocus="if (value =='您的邮箱:'){value =''}" onBlur="if (value ==''){value='您的邮箱:'}">
    	        </td>
    	  </tr>				
              <tr>
    		<td>
     <textarea name="content" id="content" overflow:auto" onfocus="if (value =='请输入内容:'){value =''}" onBlur="if (value ==''){value='请输入内容:'}"></textarea></td> </tr></table></form>


    然后访问form表单页就可以运行了
    2,不含form表单页的流程:
    其实大致都是一样的,只不过直接要访问action地址,然后直接处理,比如你要输出内容直接在action里处理,然后用request.setAttribute("name",调用方法);把name传到页面上,然后在相应的页面上用bean标签或者logic标签直接输出就可以了
    如果需要把id传值到相应页面上然后访问,那么就要通过超链接里把id传过去
    例如:<a href="dongtai.do?method=dongtai&id=<bean:write name="dongtai" property="id" />"><bean:write name="dongtai" property="title" /> </a> 
    就可以把id传到相应的页面上,然后在action里用String id= request.getParameter("id");接收,然后把id传到相应的方法里,然后就可以了!


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    温故知新-多线程-深入刨析park、unpark
    温故知新-多线程-forkjoin、CountDownLatch、CyclicBarrier、Semaphore用法
    温故知新-多线程-Cache Line存在验证
    CSS3动画基础
    通过DataSourceTransactionManager实现Spring事务
    MAC终端SSL_ERROR_SYSCALL in connection to XX
    磨刀不误砍柴工——ubuntu、mac终端美化
    k8s可视化工具kubernetes-dashboard部署——小白教程
    阿里云ECS(Ubuntu)单节点Kubernetes部署——小白教程
    Vue时间线组件
  • 原文地址:https://www.cnblogs.com/shipeng22022/p/4614141.html
Copyright © 2020-2023  润新知