用struts的action运行jsp页面
struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。
想要运行struts必须先创建一个struts,在struts里面建一个action包,我的包名为Classwork,结构如下图所示:
在Classwork下新建一个class 继承 ActionSupport 方法,代码如下:
package Classwork; import com.opensymphony.xwork2.ActionSupport; public class loginAction1 extends ActionSupport { @Override public String execute() throws Exception { return "ok";
//返回值为ok,应该与配置文件的一致 } }
然后配置文件Struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="default" extends="struts-default"> //这里的name用于最后的路径 <action name="beanlogin" class="Classwork.loginAction1"> //这里的name与action中的严格一致
<result name="ok">/bean.jsp</result> </action> </package> <!-- <constant name="struts.i18n.encoding" value="gb2312"></constant> --> </struts>
最后webRoot下新建一个jsp页面bean.jsp,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'bean.jsp' starting page</title> </head> <body> //这里的name是action的包名加类名 <s:bean name="Classwork.loginAction1" id="stu"> 在bean标签内部可以直接输出:<br> <s:param name="name">周何骏</s:param> (1)第一种赋值方式: <s:property value="name"/><br> (2)第二种赋值方式: <!-- 该方法为参数赋值字符串必须加引号 --> <s:param name="name" value="'周何骏'"></s:param> <s:property value="name"/> </s:bean> <br> 在bean标签外部利用id取值: <s:property value="#stu.name"/> </body> </html>
然后运行action
这里需要注意的是路径问题;
最后的路径名应该是项目名+action包名+action的name.action