jsp中未显示操作错误
我开发了一个jsp页面,其中需要提供用户详细信息。这是jspjsp中未显示操作错误,jsp,struts2,Jsp,Struts2,我开发了一个jsp页面,其中需要提供用户详细信息。这是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="Conte
<%@ 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>
登记
由SSSIHL设计和维护
这将转到以下操作文件
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;
}
package com.ActionClasses;
导入com.Daos.RegisterDao;
导入com.Daos.usernameAvailability;
导入com.Beans.RegisterBeans;
导入com.mysql.jdbc.StringUtils;
导入com.opensymphony.xwork2.Action;
导入com.opensymphony.xwork2.ActionSupport;
导入com.opensymphony.xwork2.ModelDriven;
@抑制警告(“串行”)
公共类RegisterAction扩展ActionSupport实现动作,模型驱动
{
RegisterBeans RegisterBeans=新RegisterBeans();
public void validate(){
System.out.println(“来到这里”+registerBeans.getUsername());
if(StringUtils.isNullOrEmpty(registerBeans.getUsername()))
{
System.out.println(“找不到用户名”+registerBeans.getUsername());
addFieldError(“用户名”,“需要用户名”);
返回;
}
/*布尔值Available=usernameavailability.check(registerBeans.getUsername());
如果(!可用){
System.out.println(“用户名不可用”+registerBeans.getUsername());
addFieldError(“用户名”,“用户名不可用”);
返回;
}
*/
}
公共字符串execute()引发异常{
如果(RegisterDao.save(registerBeans)==4)/*对于每个注册,将在数据库中填充4个表*/
回归成功;
返回误差;
}
@凌驾
公共RegisterBeans getModel(){
返回寄存器bean;
}
}
java包含所有getter和setter。当我在jsp中不提供任何用户名时,我能够在控制台中看到消息“comehere”。但是当控件返回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>
/login.jsp
/寄存器{1}.jsp
如果使用的是simple
主题,则不会自动呈现字段错误
你需要自己做这件事:
另外请注意,如果您使用的是最新版本的Struts2,则required=“true”应为required=“required”。您正在FieldError中设置错误消息,并使用ActionError显示。改变它。或者在addActionError消息中设置错误。我最初尝试了它,因为这对我没有帮助,我将它改为field error。即使这样也不起作用。停止使用modeldriven,一切都会好起来。您正在使用RegisterBeans Pojo类作为getter和setter,因此用户名字段在Jsp上不会直接可用。尝试将所有的getter和setter都放在操作中,然后检查是否显示字段错误?然后我们需要从RegisterBeans.username中获取该字段。@AleksandrM是MD的另一个受害者,如果我这样做,我可能会得到一个错误“Undefined attribute name fieldName”。并且required=“true”不会给我任何错误或警告。我正在使用struts2.3.16.31)不可能,您有一些打字错误或正在做一些没有写在这里的事情(它可以工作,并且是打开的;2)必需的是HTML5必需的,并且应该是必需的=“必需的”。在旧的struts2版本中,required是一个struts2属性,它是required=“true”。现在是requiredLabel。我粘贴了完整的jsp和操作文件。您使用的是简单主题吗?您能看到控制台中打印的“未找到用户名”吗?然后使用
重试,注意打字错误。fieldName、s:fielderror(而不是其他标记,例如s:actionerror)等。错误必须是微不足道的。