当前位置: 首页 > 面试题库 >

设置bean时出现NullpointerException

黎腾
2023-03-14
问题内容

我点击超级链接后有一个操作网址

/SocialStupendous/GetProfile.action?slno=3&slno=3

在我的execute方法中,ActionClass我有以下代码

public String execute() {
  int urislno=Integer.parseInt(getServletRequest().getParameter("slno"));
  System.out.println(urislno);
  bean.setUslno(urislno);       
}

NullPointerException在表演的时候就在表演bean.setuslno(urislno)。即使urislno正确打印为3

ProfileBean 类:

public class ProfileBean {

  private int uslno;

  public int getUslno() {
    return uslno;
  }

  public void setUslno(int uslno) {
    this.uslno = uslno;
  }
}

为什么会这样呢?


问题答案:

bean未初始化。您应该在操作中以某种方式对其进行初始化

private ProfileBean bean = new ProfileBean(); 
//and add getter ans setter

更好的方法是让容器为您完成。您只需要在struts.xml

<bean class="com.yourpackagename.ProfileBean" scope="default"/>

那你就会有

private ProfileBean bean;

@Inject
public void setProfileBean(ProfileBean bean) {
  this.bean = bean;
}

而且您不需要解析参数请求,params拦截器已经完成了此操作,这是defaultStack您的操作应运行的一部分。您应该在操作中创建属性以保存参数值。

private Integer slno;

public Integer getSlno() {
    return slno;
}

public void setSlno(Integer uslno) {
    this.slno = slno;
}

动作看起来像

public String execute() {

   if (slno != null) {
     System.out.println(slno)
     bean.setUslno(slno);
   }

   ......
   return SUCCESS;
}


 类似资料:
  • 问题内容: 我尝试通过bash脚本执行此命令,但出现以下错误: 错误stacktrace: {“错误”:“ IndexPrimaryShardNotAllocatedException [[my_index]主要未分配后api]”,“状态”:409} {“错误”:“ ElasticSearchIllegalArgumentException [无法更新非动态设置[[index.analysis.f

  • 我正在尝试设置apache流。在下面的pom.xml中。当我添加 pom文件出现错误,表示:在这行发现多个注释:-无法传输org.glassfish.hk2:hk2-utils:jar:2.4.0-b34 http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0com.IoT.app.Kafka iot-kafka-producer 1.1.0 IoT

  • 问题内容: 我最近下载了Maven和遵循此给出的说明这个页面。我已经在计算机上安装了ant。现在,如果我想验证是否正确安装了Maven,这将给我以下错误:JAVA_HOME的设置不正确,但对于ANT来说也可以正常工作。 我去目录检查java.exe是否确实在该目录中,并且在那里。我检查了它们设置良好的环境变量。我重新启动系统并再次检查,但同样的问题。请让我知道我在想什么。 问题答案: JAVA_H

  • 我知道对你们大多数人来说,这可能是一个简单的错误,但我找不到任何答案或我面临的问题的线索,主要原因是我对是新手,我与错误消息或这些消息告诉我的任何东西都不相关。 当我尝试运行像hello world这样的基本代码时,它首先打印这一行 “/library/java/javavirtualmachines/jdk-11.0.1.jdk/contents/home/bin/java”-javaagent

  • 我试图设置一个,我查看了Stack Overflow和一些其他站点,所有站点都是一样的,所以我复制了这些代码。这是我当前的代码(这都在中) 我有三个错误: > 未知实体 没有applcable方法 “Android.Widget.TabHost”中的方法 任何帮助都将不胜感激! 更新:下面是我的整个onCreate和一个onTabChanged方法: @override public void o

  • 我使用squeelize.js和SQLite-database,遇到了一个为外键设置值的问题。我有以下代码: Sequelize在DB中创建MessageModel-row,但当它试图生成TodoModel时,它会出现以下错误: 生成得SQL: 我的TodoModel表如下所示: 我在SQLite中使用了“sequelize”:“^5.1.0”。 MyConfig文件: