为什么一定加它?? <action
name="logonForm"
path="/logon"
scope="request"path路径不对前面<form action=" <%=path%>logon.do" method="post">
aciton = "logon.do"
不用<%=path%>
name="logonForm"
path="/logon"
scope="request"path路径不对前面<form action=" <%=path%>logon.do" method="post">
aciton = "logon.do"
不用<%=path%>
解决方案 »
- 结果liux系统get方式提交中文乱码问题
- NND, 项目移植报个No bean named 'sessionFactory' is defined
- spring中使用多线程的问题
- 关于java连接数据库的棘手问题
- 请问一个struts框架的项目转JSF框架,可行度有多少?
- 超级急求帮助 解决The requested resource (Servlet action is not available) is not available.
- 2道头疼的题目,请赐教.
- struts取不到资源文件~~~
- weblogic问题,高手来帮忙,帮忙顶也有感谢!!
- spring mvc项目启动报错
- 如何用java获取天气预报webservice?请高手解答(我是初学)
- Weblogic 8.1 sp2英文版使用Ajaxanywhere不刷新,如何解决?
要么<form action="/logon.do" method="post">
视具体情况而定,但是不能加那个什么 <%=path%>
lz看这段:
<action
name="logonForm"
path="/logon"
scope="request"
type="com.weas.struts.user.LogonAction"
validate="false" />
<message-resources parameter="com.weas.struts.ApplicationResources" />
</struts-config> 提交的应该是:path="/logon" 源代码就是这样了,可是当我要登录的时候,输入了正确的用户名和密码,浏览器一直显示
http://localhost:8080/infoex/longon.do //为什么你的浏览器显示的是longon.do???? 多了一个n ?????
<form action=" <%=path%>logon.do" method="post">
<input class="gray input" onclick="this.value='';this.className='input black'" size="15" value="输入用户名" name="username" />
<input class="gray input" onClick="this.value='';" type="password" size="15" name="password" />
<input name="submit" type="submit" class="btn" value="登 录" />
应该改成:
<form action=" <%=path%>logon.do" method="post">
<input class="gray input" size="15" value="输入用户名" name="username" />
<input class="gray input" type="password" size="15" name="password" />
<input name="submit" type="submit" class="btn" value="登 录" />
试一试
(2)path如果改为/logon.do 浏览器提示 description The requested resource (/logon.do) is not available.
浏览器里的地址变为http://localhost:8080/logon.do
(3)path如果改为/infoex/logon.do还是一直没显示
(4)其实每次Eclipse都为弹出调试窗口,显示Class.class文件,不知道这个是为什么?
String path = request.getContextPath() + "/";
%>
这是提取相对地址的意思,即项目的根目录.
看来 <form action=" <%=path%>logon.do" method="post">
也是没错的,好像错不在这里.
out.println("helloword!");好像在Action里面不可以有输出的吧.
我用上面两句编辑不过.
http://localhost:8080/infoex/longon.do 请问这个问题出在那时.控制台也没什么提示,搞了好久还是没弄好,只好求助于你们了!----------------------------------------------------------大哥,web.xml配置了吗?看看进没进Action,如果没进,去改web.xml和struts配置文件,进了就再找别处
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet> <!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>web.xml你配置了吗
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>main.jsp</welcome-file>
</welcome-file-list>
</web-app>
我是这样配置的,有问题嘛?]
真是不好意思,麻烦了你们这么久了.
应该是if(){
if(){ }else{
.......
}
}else{
......
}
而且当你成功的时候,你没有转向啊//return mapping.findForward("Toindex");
你给注释掉了!!
不过源码是这样的,不好意思,因为显示问题搞错了.
public ActionForward execute (ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
LogonForm logon = (LogonForm) form;// TODO Auto-generated method stub
String username = new String(logon.getUsername().getBytes("iso8859-1"),"GB2312");
//String password = new String(logon.getPassword().getBytes("iso8859-1"),"GB2312");
String password = logon.getPassword();
// JspWrite out=pageContext.getOut();
//.println("helloword!");
if(username!=null && password!=null){
HttpSession httpsession = request.getSession();
Session session = HibernateSessionFactory.getSession();
TabUser user =(TabUser) session.createQuery("from TabUser where userName=:name").setString("name", username).uniqueResult();
if(user!=null){
if(user.getPassword().equals(password)){
httpsession.setAttribute("user", user);
request.setAttribute("logon", "登陆成功!");
//return mapping.findForward("Toindex");
}else
request.setAttribute("logon", "你输入的密码不正确");
}else
request.setAttribute("logon", "此用户不存在");
HibernateSessionFactory.closeSession();
}else
request.setAttribute("logon", "输入内容不能为空!");
return mapping.findForward("Toindex");
}
}
你的意思是显示的index.jsp出错了,没有接收到request的值??
还是停留在原来的画面,
浏览器状态栏显示的是:
等待http://localhost:8080/infoex/logon.do
不过,还是要谢谢你的.
if(username!=null && password!=null)修改为
if(!("".equals(username))&&!("".equals(password)))