当前位置: 首页 > 面试题库 >

如何在Action类之外将错误消息从Struts2发布到HTML

怀德馨
2023-03-14
问题内容

我有一个注册程序。在数据库上插入记录时,我将实例化一个类并调用method
insert()。当我插入相同的记录时,当然会有重复的数据错误和大量错误消息。我想用try和捕获它catch。我可以的
但是,我不知道如何将消息显示给JSP。

据我了解,在操作类中,validate()方法和方法validation.xml首先运行。那些方法被调用后,发生插入重复错误。

import com.opensymphony.xwork2.ActionSupport;
import lotmovement.business.crud.InsertUserProfile;
import lotmovement.business.entity.UserProfile;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class RegisterAction extends ActionSupport {

    private static String userId;
    private static String password;
    private static String firstName;
    private static String lastName;
    private static int securityLevel;

    @Override
     public String execute() {    
         ApplicationContext context = 
                 new ClassPathXmlApplicationContext("spring.xml");

          InsertUserProfile iup = 
                 (InsertUserProfile)context.getBean("insertuserprofile");
         iup.Insert();

      return SUCCESS;
    }

这是我的插入用户个人资料方法

 public void Insert() {          
    ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    UserProfile up = (UserProfile)context.getBean("userprofile");
    RegisterAction ra = (RegisterAction)context.getBean("registeraction");
    EntityStart es = (EntityStart)context.getBean("entitystart");

    es.StartDbaseConnection();

    up.setUserId(ra.getUserId());
    up.setFirstName(ra.getFirstName());
    up.setLastName(ra.getLastName());
    up.setPassword(ra.getPassword());
    up.setSecurityLevel(ra.getSecurityLevel());

    es.StartPopulateTransaction(up);

    es.CloseDbaseConnection();        
}

这是我的JSP:

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <link rel="stylesheet" type="text/css" href="CSS/register.css">
  <title>Register</title>
  <s:head />
</head>
<body>
<s:form method="POST" action="register" >
  </tr>
  <tr>
    <td colspan="2">
      <s:actionerror/>
      <s:fielderror/>
    </td>
  </tr>
  <s:textfield label="UserID"     key="userId" maxLength="20"/>
  <s:password label="Password"    key="password" maxLength="20"/>
  <s:password label="retype-Password"  key="retypepassword" maxLength="20"/>
  <s:textfield label="Firstname"  key="firstName" maxLength="20"/>
  <s:textfield label="Lastname"   key="lastName" maxLength="20"/>
  <s:textfield label="SecurityLevel" key="securityLevel" maxLength="20"/>
  <s:submit   value="Register"/>
</s:form>
</body>
</html>

问题答案:

尝试这个:

1.定义自己的异常类

public class MyException extends Exception {}

2.如果您的insert方法中有异常,请抛出此异常

if(insertError){
    throw new MyExecption("your message");
}

3.在动作类中,调用 insert method with try-catch block

try{
    insert();
} catch(MyException me){
    addActionError(me.getMessage());
    return "anything_you_want";
}

4.您可以使用以下命令在jsp中显示消息<s:actionerror/>



 类似资料:
  • 本文向大家介绍Python如何将消息发布到RabbitMQ,包括了Python如何将消息发布到RabbitMQ的使用技巧和注意事项,需要的朋友参考一下 示例 从导入库开始。 接下来,我们需要打开与RabbitMQ服务器的连接。 之后,我们需要建立一个频道。每个连接可以有多个通道,通常在执行多线程任务时,建议(但不是必需)每个线程一个。 建立频道后,我们就可以开始准备信息了。 现在,我们可以通过简单

  • 我最近一直在研究这个Java游戏。我试图用音频剪辑添加音乐,但它不起作用,所以我取出了我的主代码,删除了主代码,因为我不再需要它了。在我实现音乐之前,所有的代码都是一样的,但现在这个消息弹出,不让我运行我的游戏: 错误:在com.Illuminationsco.gonerdgo.entities.markles类中找不到Main方法,请将Main方法定义为:public static void M

  • 发布到DynamoDB,以便用户登录。 致命错误:未捕获的异常'Aws\DynamoDb\Exception\DynamoDbException',带有消息'在“https://dynamodb.us-east-1.amazonaws.com”上执行“GetItem”时出错;AWS HTTP错误:客户端错误:导致响应:{"__type":"com.amazon.coral.validate#Val

  • 我有一个Java Servlet类,当我的应用程序中存在身份验证问题时,我尝试在其中设置错误状态。但是,问题是,我可以设置错误状态,但无法在响应正文中设置错误消息。以下是我的尝试: 授权筛选器。Java语言 例外处理程序。Java语言 我的Trowable包含要显示的正确HTTP状态。我尝试了两件事: 我试着按照这个方法做:public ultsendError(int sc,java.lang.

  • 物联网有很多设备,通过这条指令可以向某个特定的物联网设备发送特定的消息内容。 请求方式: "|4|1|3|topic|message|" 参数: topic 设置订阅的topic,获取设备topic可参考教程 message 发布消息的内容 返回值: "|4|1|3|1|\r" 消息发送成功 "|4|1|3|2|\r" 消息发送失败 Arduino样例: softSerial.print("|4|

  • 我试图解决这个问题已经有一段时间了,但我所尝试的一切都是无用的。我尝试了HttpClientHandler,但仍然得到了错误! 错误消息: 无法建立SSL连接,请参阅内部异常 身份验证失败,请参阅内部异常 收到的消息意外或格式不正确 我从零开始学习c#,而且我对c#语言非常熟悉,所以请解释一下问题所在。

  • 我正在检索数据库值并将其放入数组列表(al)。该数组列表以表的形式显示在JSP页面中。我想修改JSP页面中的值,并使用Struts2更新数据库中的新值。我该怎么做? 主要行动类 这是POJO班 这是显示数组列表的JSP页面

  • 我正在制作一个Spring启动的Web应用程序,我想处理唯一的键约束异常并将错误消息返回到输入页面。我已经搜索了很多这种方法,但没有找到。 控制器类:- 请建议我做什么?