onblur事件触发的用户名唯一性检查
为什么我访问这个register.jsp页面时出错,提示说Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /register.jsp(9,0) The value for the useBean class attribute com.gjun.bo.AjaxBean is invalid.
可是AjaxBean就放在 com.gjun.bo下呀!<!-- 在register.jsp中的代码: --><jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge"/><jsp:useBean id="ajax" class="com.gjun.bo.AjaxBean"/>
<%
JSONRPCBridge.registerObject("ajax",ajax);
%><!-- -->
<script language = "JavaScript" src = "js/Gjun.js"></script>
<script type="text/javascript" src="js/jsonrpc.js"></script>
<script language = "JavaScript">
jsonrpc=new JSONRpcClient("JSON-RPC");
function checkLoginName(){
var name=document.all.username.value;
if((name!=null)&&(name.length>0)&(jsonrpc.ajax.chkLoginName(name))){
alert('对不起,该登录帐号已被占用,请重新输入!!');
document.all.username.focus();
}
}
</script>
<input maxLength="8" size="32" name="username" onblur="checkLoginName()" style="font-family: Tahoma,Verdana,宋体; font-size: 12px; line-height: 15px; color: #000000">
/////////////////在AjaxBean中,这里应该没错的吧?????public class AjaxBean {
private IUserDao userDao;
public static Logger logger = Logger.getLogger(AjaxBean.class);
public AjaxBean(IUserDao userDao){
this.userDao=userDao;
} public boolean chkLoginName(String loginName){
boolean result = false;
try{
// 存在该用户名,则返回true;
result = userDao.checkUser(loginName);
}catch(Exception ex){
logger.info("在执行AjaxBean类中的chkLoginName方法时出错:\n");
ex.printStackTrace();
}
return result;
}
}<!--在applictionContext.xml中-->
<!--好像不能用getter/setter注入 -->
<bean id="ajax" class="com.gjun.bo.AjaxBean">
<constructor-arg>
<ref bean="userDao"/>
</constructor-arg>
</bean>
为什么我访问这个register.jsp页面时出错,提示说Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /register.jsp(9,0) The value for the useBean class attribute com.gjun.bo.AjaxBean is invalid.
可是AjaxBean就放在 com.gjun.bo下呀!<!-- 在register.jsp中的代码: --><jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge"/><jsp:useBean id="ajax" class="com.gjun.bo.AjaxBean"/>
<%
JSONRPCBridge.registerObject("ajax",ajax);
%><!-- -->
<script language = "JavaScript" src = "js/Gjun.js"></script>
<script type="text/javascript" src="js/jsonrpc.js"></script>
<script language = "JavaScript">
jsonrpc=new JSONRpcClient("JSON-RPC");
function checkLoginName(){
var name=document.all.username.value;
if((name!=null)&&(name.length>0)&(jsonrpc.ajax.chkLoginName(name))){
alert('对不起,该登录帐号已被占用,请重新输入!!');
document.all.username.focus();
}
}
</script>
<input maxLength="8" size="32" name="username" onblur="checkLoginName()" style="font-family: Tahoma,Verdana,宋体; font-size: 12px; line-height: 15px; color: #000000">
/////////////////在AjaxBean中,这里应该没错的吧?????public class AjaxBean {
private IUserDao userDao;
public static Logger logger = Logger.getLogger(AjaxBean.class);
public AjaxBean(IUserDao userDao){
this.userDao=userDao;
} public boolean chkLoginName(String loginName){
boolean result = false;
try{
// 存在该用户名,则返回true;
result = userDao.checkUser(loginName);
}catch(Exception ex){
logger.info("在执行AjaxBean类中的chkLoginName方法时出错:\n");
ex.printStackTrace();
}
return result;
}
}<!--在applictionContext.xml中-->
<!--好像不能用getter/setter注入 -->
<bean id="ajax" class="com.gjun.bo.AjaxBean">
<constructor-arg>
<ref bean="userDao"/>
</constructor-arg>
</bean>
解决方案 »
- 去苏宁做开发好,还是去做android开发好?
- 超强的通用查询框架 Awake-1.0.1个人版发布了,增加了对Ajax的支持,和排序模块,
- 用MyEclipse开发struts是否需要在配置文件声明
- 如何做到查询定位,即查询某人时自动跳到该页的那条记录.
- 耽误您一点时间,请帮菜鸟看个简单问题
- Struts2 标签 <br />和\r\n
- 在安装ofbiz的时候碰到一个问题
- oracle 中的图片在jsp中显示的问题
- JavaWeb中web.xml里如何对<Servlet>标签正确配置啊?
- 关于tomcat7、tomcat8的一个jsp乱码问题,难道是bug?求释疑
- 如何计算字符串中的匹配个数
- ssh事务管理对异常的处理
依赖注入的问题:
public class AjaxBean {
public static Logger logger = Logger.getLogger(AjaxBean.class);
private IUserService userS;
public IUserService getUserS() {
return userS;
}
public void setUserS(IUserService userS) {
this.userS = userS;
}
public boolean chkLoginName(String loginName){
// IUserService userS=new UserServiceImpl();
boolean result = false;
try{
// 存在该用户名,则返回true;
////////////////////////////////////////////////
result = userS.checkUser(loginName);/////////在这里出错!!!!!
////////////////////////////////////////////////
}catch(Exception ex){
logger.info("在执行AjaxBean类中的chkLoginName方法时出错:\n");
ex.printStackTrace();
}
return result;
}
}问题(1)::::
在applictionContext.xml中的设置为:
<bean id="myAjax" class="com.gjun.bo.AjaxBean">
<property name="userS">
<ref bean="userS"/>
</property>
</bean>
<bean id="userS" class="com.gjun.bo.UserServiceImpl">
<property name="userDao">
<ref bean="userDao"/>
</property>
</bean>
在AjaxBean、UserServiceImpl中实现了相应的getter/setter
当JSON-RPC在JSP中调用AjaxBean时出现了java.lang.NullPointerException也就是说userS==null;如果直接将userDao注入到AjaxBean中也是一样的。在XML中去掉<bean id="userS"> 在AjaxBean中直接创建一个业务对像:IUserService userS=new UserServiceImpl();userDao也会也会为null;
问题(2)::::
在XML中去掉<bean id="userS"> 在AjaxBean中直接创建一个业务对像:IUserService userS=new UserServiceImpl();
在applictionContext.xml中的设置为:
<bean id="userS" class="com.gjun.bo.UserServiceImpl">
<constructor-arg>
<ref bean="userS"/>
</constructor-arg>
</bean>
在UserServiceImpl中
public UserServiceImpl(IUserDao userDao){
this.userDao=userDao;
}
在AjaxBean中直接创建一个业务对像:IUserService userS=new UserServiceImpl();
AjaxBean 直接给出错误提示The constructor UserServiceImpl() is undefined
给AjaxBean加上public UserServiceImpl(){
}运行后还是NullPointerException;这样看来好像是AjaxBean不支持这样的注入方式;怎样才能给AjaxBean注入BO或DAO????是AjaxBean要实现某个接口或继承某个类吗????