jsp中未显示操作错误 [英] Action errors are not being displayed in jsp

查看:87
本文介绍了jsp中未显示操作错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发了一个jsp页面,其中需要提供用户详细信息.这是jsp

I have developed a jsp page where user details needed to be given. Here is the jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Register</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>

<body>       
<div id="form_container" align="center">

        <div class="errorMessages" >
            <s:actionerror/>
        </div>


    <s:if test="hasActionMessages()" >                      <!--  Print action messages if any -->
        <div class="successMessages" >
            <s:actionmessage/>
        </div>
    </s:if>

    <s:form action="registerOphthalmologist" method="post">  

        <s:hidden       key="role"          label="role"    value="O"       />
        <s:textfield    key="username"      label="Choose UserName" required="true"/>
        <s:password     key="password"      label="Choose Password" required="true"/>

        <s:textfield    key="givenName"     label="Name"    required="true"/>
        <s:textfield    key="surname"       label="Surname" required="true"/>
        <s:textfield    key="age"           label="Age"     required="true"     value=""/>
        <s:select       key="gender"        label="Gender"  
                        list="#{'M':'Male','F':'Female'}" 
                        required="true"/>

        <s:textfield    key="contactNumber"     name="contactNumber"    label="Contact Number"  required="true"/>
        <s:textfield    key="email"             name="email"            label="email"           required="true"/>
        <s:textfield    key="city"              name="city"             label="City"            required="true"/>
        <s:textfield    key="district"          name="district"         label="District"        required="true"/>
        <s:textfield    key="state"             name="state"            label="State"           required="true"/>
        <s:textfield    key="country"           name="country"          label="country"         required="true"/>
        <s:textfield    key="postalCode"        name="postalCode"       label="Postal Code"     required="true"/>

        <s:textfield    key="degree"            label="Qualification"           required="true"/>
        <s:textfield    key="university"        label="University"              required="true"     value=""/>
        <s:textfield    key="hospitalName"      label="Hospital Name"           required="true"/>
        <s:textfield    key="experience"        label="Years of Experience"     required="true"     value=""/>

        <s:checkbox     key="checkMe"       fieldValue="true"       label="Agree to terms & Conditions"/>
        <s:submit       value="Register"    align="center"/>

    </s:form>
</div>  
<div class="footer">
    <p align="center">Designed and maintained by SSSIHL</p>
</div>  

这将转到以下操作文件.

This goes to the following action file.

package com.ActionClasses;

import com.Daos.RegisterDao;
import com.Daos.UsernameAvailabilty;
import com.Beans.RegisterBeans;
import com.mysql.jdbc.StringUtils;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

@SuppressWarnings("serial")
public class RegisterAction extends ActionSupport implements Action,ModelDriven<RegisterBeans>
{

RegisterBeans registerBeans = new RegisterBeans();  

public void validate(){
    System.out.println("came here "+ registerBeans.getUsername());
     if (StringUtils.isNullOrEmpty(registerBeans.getUsername()))
       {
         System.out.println("username not found "+ registerBeans.getUsername());
          addFieldError("username","Username is required");
          return;
       }
    /*boolean Available = UsernameAvailabilty.check(registerBeans.getUsername());

    if(!Available){
        System.out.println("username not available "+ registerBeans.getUsername());
        addFieldError("username","Username is not available");
        return;
    }
*/
}
public String execute() throws Exception{

    if(RegisterDao.save(registerBeans) == 4) /*For every registration 4 tables will be filled in database*/
        return SUCCESS;

   return ERROR;
}
@Override
public RegisterBeans getModel() {
    return registerBeans;
}

}

RegisterBeans.java包含所有getter和setter.当我在jsp中不提供任何用户名时,我可以在控制台中看到消息来到这里".但是,当控制权回到register.jsp时,错误消息没有显示在屏幕上.我做错了什么.

RegisterBeans.java contains all getters and setters. When I don't give any username in jsp, I am able to see the message "came here " in console. But when control comes back to register.jsp, the error message is not being displayed on the screen. What is the mistake I did.

我的struts.xml代码是

My struts.xml code for this is

<action name="register*" class="com.ActionClasses.RegisterAction">
        <result name="success"> /login.jsp              </result>
        <result name="input">   /register{1}.jsp        </result>
    </action> 

推荐答案

如果您使用的是simple主题,则不会自动呈现字段错误".

IF you are using simple Theme, the Field Errors won't be rendered automatically.

您需要自己做:

<s:textfield  key="username"  label="Choose UserName" required="true"/>
<s:fielderror fieldName="username" />

还请注意,如果您使用的是最新版本的Struts2,则required ="true"应该是required ="required".

Also note that required="true" should be required="required" if you are using a recent version of Struts2.

这篇关于jsp中未显示操作错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆