jsp中没有显示动作错误
我开发了一个需要给出用户详细信息的jsp页面。这里是JSPjsp中没有显示动作错误
<%@ 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>
这正好以下操作文件。
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时,错误消息不会显示在屏幕上。我做了什么错误。此
我struts.xml的代码是
<action name="register*" class="com.ActionClasses.RegisterAction">
<result name="success"> /login.jsp </result>
<result name="input"> /register{1}.jsp </result>
</action>
如果您正在使用simple
主题,外地的错误不会自动呈现。
你需要自己做:
<s:textfield key="username" label="Choose UserName" required="true"/>
<s:fielderror fieldName="username" />
另外请注意,所需=“真”应要求=如果您使用的是最新的Struts2的版本“必需的”。
如果我这样做,我得到一个错误,“未定义的属性名称fieldName”。并且required =“true”不会给我任何错误或警告。我正在使用struts2.3.16.3 – Pawan 2014-08-28 08:49:50
1)不可能,你有一些错字或正在做一些不在这里写的东西(它的工作原理,它也在[docs too]上(http://struts.apache.org/release/) 2.3.x/docs/fielderror.html); 2)需要HTML5是必需的,应该是必需的=“required”。在旧的struts2版本中,required是一个struts2属性,它是required =“true”。现在它需要标签。 – 2014-08-28 09:06:15
我粘贴完整的jsp和动作文件 – Pawan 2014-08-28 09:15:49
您正在设置FieldError中的错误消息并使用ActionError进行显示。更改它
。或者在addActionError消息中设置你的错误。 – 2014-08-28 08:41:35我最初尝试过,因为这不是帮助我,我把它改为现场错误。即使这不起作用。 – Pawan 2014-08-28 08:52:41
停止使用modeldriven,并且一切都应该没问题。 – 2014-08-28 08:54:59