Struts 的友好报错的实现

本文介绍如何使用Struts框架进行表单验证,包括在ActionForm和业务逻辑中进行验证的方法,并展示了具体的Java代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个例子是的功能是:当你在文本框中输入后。点击确定。如果文本框中是空的就在本页上提示“不能为空”

页面代码如下:

<%@ page contentType="text/html; charset=UTF-8" language="java"%>

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

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

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

<html:html>

       <head>

              <title>我的联系地址</title>

       </head>

       <body>

              <html:errors/>

              <html:form action="">

                     <html:text property="userName"></html:text>

                     <html:password property="password"></html:password>

                     <html:submit/><html:reset/>

              </html:form>

       </body>

</html:html>

 

其中<html:errors/>是用来显示出现的错误的

在判断是否为空有两种方法1是在ActionForm中时行判断2是在FormAction中的业务中进行判断:如下是有ActionForm中的判:

package com.buat.actionForm;

 

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;

 

public class LoginForm extends ActionForm {

      

       private String userName;

       private String password;

       public ActionErrors validate(ActionMapping mapping,

                     HttpServletRequest request) {

              ActionErrors errors=new ActionErrors();

              if(userName==null||"".equals(userName)||password==null||"".equals(password)){

                     errors.add("errors",new ActionMessage("login.login.errors"));

              }

              return errors;

       }

       public void reset(ActionMapping mapping, HttpServletRequest request) {

              this.userName=null;

              this.password=null;

       }

       public String getUserName() {

              return userName;

       }

       public void setUserName(String userName) {

              this.userName = userName;

       }

       public String getPassword() {

              return password;

       }

       public void setPassword(String password) {

              this.password = password;

       }

}

如上红色的代码就是当你提交的时候判断的如果为空那么就返回错误

其中用到了两个类1ActionErrors 用于存错误的集合:

2ActionMessage代表一个错误的信息。其中的构造参数里的信息是写在资源文件中的.在这里只是用到它的一个key

2在下面用到的就是在业务中时行判断的代码如下:

/*

 * Generated by MyEclipse Struts

 * Template path: templates/java/JavaClass.vtl

 */

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

import org.apache.struts.action.ActionMessages;

 

import struts.form.LoginForm;

 

public class LoginAction extends Action {

 

       public ActionForward execute(ActionMapping mapping, ActionForm form,

                     HttpServletRequest request, HttpServletResponse response) {

              LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

              String id = loginForm.getId() ;

              String password = loginForm.getPassword() ;

              //错误的集合类

              ActionMessages errors = new ActionMessages() ;

              boolean b = true ;

              if(id==null||id.length()==0)

              {

                     b=false ;

                     errors.add("errorid",new ActionMessage("error.id")) ;

              }

              if(password==null||password.length()==0)

              {

                     b=false ;

                     errors.add("errorps",new ActionMessage("error.ps")) ;

              }

             

              if(!id.equals("admin")||!password.equals("123"))

              {

                     if(b==true)

                     {

                     errors.add("errore",new ActionMessage("error.e"));

              }

              }

              if(!errors.isEmpty())

              {

                     //错误被注入

                     //传递错误到页面

                     super.saveErrors(request, errors) ;

                     return mapping.findForward("login") ;

              }

              return mapping.findForward("ok");

       }

}

如上就是在业务处理中使用的:

其中也用到了两个类:1ActionMessages代表多个信息的集合

2ActionMessage代表一个信息的集合

红色的部分的意思是将错误信息存入。然后再转到输入页面

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值