码迷,mamicode.com
首页 > 其他好文 > 详细

struts的学习

时间:2014-10-17 01:39:53      阅读:386      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   java   for   

在开发工具上进行struts的配置

1)新建项目,为项目添加Struts开发支持

2)为项目添加Struts开发支持,在项目点击右键,myeclipse->Add Struts Capabilities。选择支持的struts版本

bubuko.com,布布扣

3)在项目下的WebRoot下新建一个jsp文件。在Template to use下选在2中选择的struts版本

bubuko.com,布布扣

配置hello.jsp

<%@ page language="java" pageEncoding="GBK"%>

<%@ 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" %>

<html:html lang="true">
  <head>
    <html:base />
    
    <title>hello.jsp</title>

  </head>
  
  <body>
    <html:form action = "" method = "post">
        请输入信息:<html:text property = "info"></html:text>
        <html:submit value = "显示"></html:submit>
    </html:form>
  </body>
</html:html>

在struts之中,所有的处理类都是Action,都要绑定ActionForm

1)点击空白处,选着custom........->shortcuts->MyEclipse->Web-Struts->Struts 1.3->Struts 1.3 Form,Action......

2)在lcp.struts->new->Struts 1.3Form,Action,Jsp

bubuko.com,布布扣

这里的info属性和表单对应。

点击next,把Input Sroce改成/hello.jsp

WebRoot/lib/struts-config.xml里的action配置path表示的是提交路径。input表示的是错误信息的显示页面

lop.struts.form/HelloForm.java里面的validate()方法,主要是晚场具体的验证操作

ActionErrors是一组信息,每一个错误信息依靠ActionMessage保存。

struts之中,所有的错误信息都保存在资源文件里的

定义资源文件:

 ApplicationResources.properties:error.info = 输出错误信息。此时不能保存,不支持中文。通过jdk转码。找到自己安装的jdk路径:C:\Program Files (x86)\Java\jdk1.8.0_11\bin里的native2ascii.exe。输入想要的中文:

输入的消息不能为空
\u8f93\u5165\u7684\u6d88\u606f\u4e0d\u80fd\u4e3a\u7a7a

public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		if(this.info == null || "".equals(this.info)){//info的输入信息为空
			//保存错误信息
			errors.add(info,new ActionMessage("errors.info"));
		}
		return null;
	}

  此方法若返回的是null,或者ActionErrors对象里美欧任何的内容,则表示没有任何错误

 

 在Action之中,如果想要完成跳转功能,需要配置。struts-config.xml文件中完成。。每一个action配置一个跳转路径。以后想要修改跳转路径,直接修改配置文件即可。

 

ApplicationResources.properties文件配置中文编码集,转码问题。

# Resources for parameter ‘lop.struts.ApplicationResources‘
# Project hh
error.info =\u60A8\u8F93\u5165\u7684\u8FC7\u957F

lop.struts.action/HelloAction.java

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package lop.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import lop.struts.form.HelloForm;

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 org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

/** 
 * MyEclipse Struts
 * Creation date: 10-16-2014
 * 
 * XDoclet definition:
 * @struts.action path="/hello" name="helloForm" input="/hello.jsp" scope="request" validate="true"
 */
public class HelloAction extends Action {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HelloForm helloForm = (HelloForm) form;// TODO Auto-generated method stub
		String info = helloForm.getInfo();//所有的内容从ActionForm取出
		if(info.length() > 15){//数据过长
			ActionMessages errors = new ActionMessages();
			errors.add("info", new ActionMessage("msg.info"));
			//super.saveErrors(request, errors);//保存错误信息
			super.saveMessages(request, errors);//保存错误信息
			return mapping.getInputForward();//取得input配置的路径
		}else{
			request.setAttribute("msg", info);//将信息设置在request范围之中
		}
		return mapping.findForward("show");//返回一个映射路径
	}
}

 lop.struts.form/HelloForm.java

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package lop.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/** 
 * MyEclipse Struts
 * Creation date: 10-16-2014
 * 
 * XDoclet definition:
 * @struts.form name="helloForm"
 */
public class HelloForm extends ActionForm {
	/*
	 * Generated fields
	 */

	/** info property */
	private String info;

	/*
	 * Generated Methods
	 */

	/** 
	 * Method validate
	 * @param mapping
	 * @param request
	 * @return ActionErrors
	 */
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		if(this.info == null || "".equals(this.info)){//info的输入信息为空
			//保存错误信息
			errors.add(info,new ActionMessage("error.info"));
		}
		return errors;
	}

	/** 
	 * Method reset
	 * @param mapping
	 * @param request
	 */
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}

	/** 
	 * Returns the info.
	 * @return String
	 */
	public String getInfo() {
		return info;
	}

	/** 
	 * Set the info.
	 * @param info The info to set
	 */
	public void setInfo(String info) {
		this.info = info;
	}
}

  lib/ruts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
  <form-beans >
    <form-bean name="helloForm" type="lop.struts.form.HelloForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="helloForm"
      input="/hello.jsp"
      name="helloForm"
      path="/hello"
      scope="request"
      type="lop.struts.action.HelloAction">
      <forward name = "show" path = "/hello.jsp"></forward>
     </action>

  </action-mappings>

  <message-resources parameter="lop.struts.ApplicationResources" />
</struts-config>

 hello.jsp

<%@ page language="java" pageEncoding="GBK"%>

<%@ 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" %>

<html:html lang="true">
  <head>
    <html:base />
    
    <title>hello.jsp</title>

  </head>
  
  <body>
  	<html:messages id = "info" message = "true">
  		$(info)
  	</html:messages>
 	<html:errors/>
 	<logic:present name = "msg" scope = "request">
  		<H2>${msg}</H2>
  	</logic:present>
    <html:form action = "hello.do" method = "post">
    	请输入信息:<html:text property = "info"></html:text>
    	<html:submit value = "显示"></html:submit>
    </html:form>
  </body>
</html:html>

  

 

  

 

struts的学习

标签:style   blog   http   color   io   os   ar   java   for   

原文地址:http://www.cnblogs.com/lcpholdon/p/4029845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!