Java 未填充模型类bean

Java 未填充模型类bean,java,jsp,struts2,tiles2,model-driven,Java,Jsp,Struts2,Tiles2,Model Driven,我编写了一个web应用程序,其中有login.jsp、loginAction和loginbeans。当我用jsp填充表单时,LoginBean中的jsp bean是通过loginAction填充的。当我将这些页面的逻辑复制到注册用户时,bean没有被填充。这是我的密码 struts.xml中的相关代码 欢迎 登录 登录 LoginAction.java public class LoginAction extends ActionSupport implements Action

我编写了一个web应用程序,其中有login.jsp、loginAction和loginbeans。当我用jsp填充表单时,LoginBean中的jsp bean是通过loginAction填充的。当我将这些页面的逻辑复制到注册用户时,bean没有被填充。这是我的密码





struts.xml中的相关代码


欢迎
登录
登录
LoginAction.java

public class LoginAction  extends ActionSupport implements Action, ModelDriven<LoginBeans>{

LoginBeans loginBeans = new LoginBeans();
.
.
.
    @Override
public LoginBeans getModel() {      
    return loginBeans;
}
public class RegisterAction extends ActionSupport implements Action,ModelDriven<RegisterBeans>
{
RegisterBeans registerBeans = new RegisterBeans();  
.
.
.
    @Override
public RegisterBeans getModel() {
    // TODO Auto-generated method stub
    return registerBeans;
}
这一切都很好,豆子正在被填满。现在看一下注册用户

registerophytomologist.jsp


struts.xml中的相关代码


家
寄存器{1}
寄存器{1}
RegisterAction.java

public class LoginAction  extends ActionSupport implements Action, ModelDriven<LoginBeans>{

LoginBeans loginBeans = new LoginBeans();
.
.
.
    @Override
public LoginBeans getModel() {      
    return loginBeans;
}
public class RegisterAction extends ActionSupport implements Action,ModelDriven<RegisterBeans>
{
RegisterBeans registerBeans = new RegisterBeans();  
.
.
.
    @Override
public RegisterBeans getModel() {
    // TODO Auto-generated method stub
    return registerBeans;
}
这些豆子没有填满。我在这里犯了什么错误?我的完整struts.xml文件是


家
上传
登记
登录
欢迎
登录
登录
家
登记眼科医师
注册操作员
登记员
注册医院
登记
家
寄存器{1}
寄存器{1}
3145728
image/png,image/gif,image/jpeg,image/pjpeg,image/jpg
上传
上传

潜在错误:

从您的系统中删除
扩展操作支持

public class RegisterBeans extends ActionSupport{
声明。在某些情况下,它会被视为一种行为,而这不是你想要的

警告:

  • 避免使用
    属性如果同时指定
    标签
    ,请使用
    名称
    。据报道,

    设置此特定组件的键(名称、值、标签)

  • 始终在struts配置和
    属性中指定一个名称空间,仅使用默认名称空间是不好的

  • 小心使用
    required=“true”
    属性;它可以在旧的Struts版本中工作,但在迁移到新的版本后,由于
    支持动态属性,因此它将在页面上以完全相同的方式报告(
    required=“true”
    ),然后由HTML5
    required=“required”
    属性等浏览器进行解释,将所有字段设置为必填字段,前面不带
    *
    符号。我昨天在迁移一个旧项目时遇到了这个问题,这真的很烦人

  • 为了一致性,表示单个bean的实体应称为
    LoginBean
    RegisterBean
    ,而不是复数形式
    LoginBeans
    RegisterBeans
    。例如变量,仅当它是数组、集合等时,才应使用复数形式

  • ActionSupport
    定义为

    public class ActionSupport implements Action, Validateable, ValidationAware, 
                                      TextProvider, LocaleProvider, Serializable {
    
    因此,扩展它并实现操作接口是多余的


  • 你犯了很多错误,大部分都没有发布。即使删除模型驱动,bean也没有被填充。当loginBean被填充时,我再次使用registerBean中的ModelDriven。你能告诉我ModelDriven的问题吗?也让你的bean成为私有的,并检查你的拦截器stacks@Andrea利吉奥斯。你的建议帮了我很大的忙,我都遵守了。但是仍然没有填充bean。我所有的bean都是私有的@Andrea Ligios请发布为这两个操作配置的拦截器堆栈