First project & question

来源:互联网 发布:2016外贸出口数据 编辑:程序博客网 时间:2024/06/04 18:53

照着书《STRUTS 开发入门与项目实践》的光盘里的Chapter2的S01_Begin  做了一下,其实是copy, debug。界面是可以跳转了,但还是有问题,日志还是写不了的。现在分析一下代码:

login.jsp:

<%@ page contentType="text/html;charset=GBK" language="java" %>
<body vLink="#006666" link="#003366" bgColor="#E0F0F8">
<img height="33" src="enter.gif" width="148">
<form action="login.do" method="post">
用户名: <input size="15" name="name"><p>
密码: <input type="password" size="15" name="psw"><p>
<input type="submit" value="登录">
</form> 

其中红色部分会根据struts-config.xml里面的配置内容来调用相应的Action。

<form-beans>
 <form-bean name="formBean1" type="classmate.UserForm"/>
  </form-beans>
  <global-exceptions />
  <global-forwards>
  <forward name="failed" path="/error.jsp"/>
  <forward name="successed" path="/right.jsp"/>
  </global-forwards>
  <action-mappings>
  <action path="/login" type="classmate.LoginAction" name="formBean1" scope="request"  />
  <action path="/regist" forward="/regist.jsp"/>
  </action-mappings>

其中:type="classmate.LoginAction" name="formBean1" 再根据蓝色部分来找到相应的ActionForm(这里是UserForm)。 ActionForm就是从表单里提取信息。

有个问题就是:若表单是下面的形式从浏览器里怎么看不到上边的<html:text../> & <html:submit>,真是奇怪,刚开始看,现在对这些STRUTS和HTML标签也不了解。下面的对话from:  http://www.mysdn.cn/Java/Webkaifa/20061102/58854.html

问题解决:要在这个JSP文件头加上:<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

structs中是不是表单必须用<html:form>??



如果你用的普通form ,form里面的表单元素却用struts 标签的话,是会报错的,除非都改为html标签,不过你用struts form 里面是可以用html表单元素的


<p><html:form action="/register.do">
用户名:<html:text property="username"/><br/>
密码1: <html:text property="password1"/><br/>
密码2:<html:text property="password2"/><br/>

<html:submit value="Register"/>
</html:form></b>
<form action="/register.do">
<input type="text" name="username" value="" /><br/>
<input type="text" name="password1" value="" /><br/>
<input type="text" name="password2" value="" /><br/>
<input type="submit" value="ok" />
</form>
//////////
点第一个按钮,没问题,但是第二个按钮提示:

type Status report

message /register.do

description The requested resource (/register.do) is not available.




Form的action,如果用struts标签的话"/"表示当前web应用的根目录,如果用html标记的话"/"表示localhost的根目录。第二种把/register.do改成register.do试试。

 

原创粉丝点击