大哥,你的action配置里<action name="login" class="LoginAction"> ,
后面的class="LoginAction"是bean的id啊,但你的bean配置文件里面没有这个名字
当然找不到了
<action name="login" class="LoginAction">
<bean id="login" class="org.fcb.action.LoginAction".../>
不是name跟id对应的,而是class与下面的id对应
后面的class="LoginAction"是bean的id啊,但你的bean配置文件里面没有这个名字
当然找不到了
<action name="login" class="LoginAction">
<bean id="login" class="org.fcb.action.LoginAction".../>
不是name跟id对应的,而是class与下面的id对应
解决方案 »
- 严重: Exception starting filter struts2
- Unsupported major.minor version 49.0 异常
- 有关request.getParameterValues的问题
- 关于jsp与flash传递参数的问题
- 谁能提供一个开源的下载库 类似于FlashGet
- sql server2000中如何按条件批量修改数据
- JMS的应用场景是什么
- 请大家帮忙
- 高分求weblogc下如何布署sun的petstore
- 用resin的朋友请看
- org.aopalliance.aop.Advice源包
- 谁了解jpublish,有什么资料学习,在网上找不到好的,www.jpublish.org里的太简单了,讲解都没有
不过改了之后问题又出来了
Error building results for action login in namespace action
Caused by: No result type specified for result named 'success', perhaps the parent package does not specify the result type? - result - file:/D:/tomcat/webapps/ssh/WEB-INF/classes/struts.xml:10:27
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:575)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:338)
... 35 morestruts.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<constant name="struts.objectFactory" value="spring" />
<package name="action" namespace="action">
<action name="login" class="LoginAction">
<result name="success"> /welcome.jsp </result>
<result name="error"> /error.jsp </result>
</action>
</package>
</struts>
里面有定义了啊,怎么会没有呢?
应该改成return SUCCESS;
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:340)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:429)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
LoginAction.java
package org.fcb.action;
import org.apache.struts2.ServletActionContext;
import org.fcb.service.impl.UserService;
import org.fcb.vo.User;import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {
private User user ;
private UserService userService ;
@SuppressWarnings("unchecked")
@Override
public String execute() throws Exception {
if(userService.login(user).size()!=0){
ServletActionContext.getContext().getSession().put("user",user);
return SUCCESS;
}
return ERROR;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}
应该改成return SUCCESS;
你自己看一下
<result name="success">/welcome.jsp </result>里面的name="success"可以去掉的
你试一下
它不认为jsp为默认type,你修改一下action配置文件,类似下面的:
<package name="xxx" extends="struts-default">
试一下
我做的中一个登录程序
进入登录页面后输入数据,提交,然后出现了:
The requested resource (/ssh/login) is not available.
URL是http://localhost:8888/ssh/login;jsessionid=6C367B50C3FFE44555EB238EFC971773
本来应该是login.action 的,可现在不是!!
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %><html>
<head>
<title>用户登录</title>
</head>
<body>
<div align="center">
<s:form action="login" method="post">
<h3 align="center">登录</h3>
<s:textfield name="user.username" label="用户名"/>
<s:password name="user.password" label="密码"/>
<s:submit label="登录" align="center"/>
</s:form>
</div>
</body>
</html>
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
namespace下的,这样就出来这个错误There is no Action mapped for namespace / and action name login. - [unknown location]
我是这么理解的,不保证对。
同样你可以不继承struts-default,那么当你的result type为jsp的时候,你需要指明返回类型了,这个你可以看一下struts-default.xml中配置,
很清晰的,一般我们都继承struts-default的,我没有去设置过namespace,所以具体的情况不是很了解