现在在做一个关于网上书店的项目,其中有一个页面要求会员输入地址(分为state,province,city,address四项)。jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>   
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>
  
  <body>
    This is my JSP page. 
    <s:form action="addAddr">
    <s:token name="token"></s:token>
     <s:hidden name="address.addressId" value="%{#address.addressId}"></s:hidden>
     <s:textfield name="%{address.state}"
     label="State" />
     <s:textfield name="%{address.province}"
     label="Province"/>
     <s:textfield name="%{address.city}"
     label="City"/>
     <s:textfield name="%{address.address}"
     label="Address"/>
     <s:submit value="OK"></s:submit>
    </s:form>
  </body>
</html>
出现异常,表示为:
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
注:我已经在action里定义了get和set方法
刚刚开始接触struts2,许多东西还不是很了解,还求各位高手不吝赐教,谢谢!

解决方案 »

  1.   

    设置它的name属性,是取不到值的,要设置value属性才能取到值的
      

  2.   

    <s:form action="addAddr">
       
         <s:hidden name="address.addressId" value="#address.addressId"></s:hidden>
         <s:textfield name="address.state"
         label="State" value="%{address.state}"/>
         <s:textfield name="address.province"
         label="Province" value="%{address.province}"/>
         <s:textfield name="address.city"
         label="City" value="%{address.city}"/>
         <s:textfield name="address.address"
         label="Address" value="%{address.address}"/>
         <s:submit value="OK"></s:submit>
        </s:form>
    谢谢您的回答,不过像这样写也还是报错了。。是不是不是这个原因啊?
      

  3.   

    <s:textfield  property="address.state"  label="State" value="%{address.state}"/>
    这样吧。?
      

  4.   

    感觉strut2的UI标签不好用,先看看值站中用没有数据,没有的话,就要仔细检查action,才可以判断到底是那出现问题?
      

  5.   

    你是要action中的值输出到页面上?
    value=#变量名字,就行了
    首先你用标签的话!必须是action返回的页面!
    如果你直接访问页面的话!会出现一些小问题的!
      

  6.   

    name不用设置!那么设置什么没什么太大用处!
    取值的时候才会和name,id有关系
      

  7.   

    是标签的写法错误,换成下面写法:
    <s:textfield name="address.province" />%{}:是OGNL表达式的用法,是计算表达式的值。应用如下:<s:textfield name="address.province" value="%{address.province}"/>
      

  8.   

    name 不用这样设置,除非是使用国际化。