Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jsp中未显示操作错误_Jsp_Struts2 - Fatal编程技术网

jsp中未显示操作错误

jsp中未显示操作错误,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

我开发了一个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="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)等。错误必须是微不足道的。