`
caibaoying
  • 浏览: 26329 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

转:两个jsp页面通过xwork传数据的几个方式

阅读更多
xml 代码
  1. 这几个方法是在做项目时用到的,记在这里,如果忘记了可以参考一下,大家如果感兴趣,也可以参考一下,我想对初学webwork的应该会有一些帮助,我做东西没太多的经验,可能有很多地方说的不对,写得时候也是按照自己的理解写上去的,例子里的代码,是我做东西时候的真实代码,也是可行的,主要是说明一下怎么做。   
  2.     起初属于无奈,因为不能经过后台连接数据库得到数据,即使能得到,也是很麻烦,很耗费时间,无奈通过xwork进行传值!现在发现挺好的一件事情,也许有弊端,但我的经验不足,暂时并没有发现,如果有什么不对的地方,希望大家给点意见,批评一下,呵呵,我是大一的学生!   
  3.   1.如果这个页面的数据要给下一个页面,且不经过java文件处理,可以用这个方法!   
  4. 那是一个request的周期问题,因为在两个jsp界面通过xwork进行跳转,需要传相同的数据或者下一个界面要用到上一个jsp页面的数据时就可以像下面那样传值,要注意的是,两个jsp页面,在xwork跳转的时候不能经过java文件也就是不能让另一个java文件进行处理,如果在经过一个java文件,那么request存储的数据就会丢失!相反,request存储的数据就会存在。   
  5. 例如,   
  6. jsp:   
  7.    <c:url var="testContent" value="/admin/addcontent.action">  
  8.                     <c:param name="testId" value="${test.testId}"/>  
  9.                     <c:param name="categoryId" value="${test.categoryId}"/>  
  10.                 </c:url>  
  11.                 <a href="${testContent}">添加</a>  
  12. xwork中:   
  13.     <action name="addcontent">  
  14.             <result>/dream/admin/addcontent.jsp</result>  
  15.         </action>  
  16. 不需要做任何的处理,但要记住,不能经过后台!(也许可以经过后台,只要不进行存储数据就可以,但我没试过,因为那样就没有意义了!)   
  17. 另一个jsp(addcontent.jsp):   
  18.  <ww:a href="admin/getTestList.action?model.category_id=${param.categoryId}&id=${param.categoryId}" value="返回">  
  19.             返回   
  20.         </ww:a>  
  21. <form action="admin/addTestContent.action" method="post" enctype="multipart/form-data">  
  22.     <input type="hidden" name="categoryId" value="${param.categoryId}">  
  23.     <input type="hidden" name="content.testId" value="${param.testId}">  
  24.     <table align="center">    
  25.   
  26.   
  27.         <ww:textfield label="名称" name="content.contentName" value="" required="true"/>    
  28.   
  29.         <tr>  
  30.             <td>上传文件</td>  
  31.             <td colspan="2">  
  32.                 <input type="file" name="file1"><br/>  
  33.                 <input type="file" name="file2"><br/>  
  34.                 <input type="file" name="file3"><br/>  
  35.                 <input type="file" name="file4"><br/>  
  36.                 <input type="file" name="file5"> <br/>  
  37.             </td></tr>  
  38.         <ww:submit value="提交"></ww:submit>    
  39.   
  40.     </table>  
  41. </form>  
  42.       在另一个界面,用${param.category}得到,param指的是<c:param>标签[jstl] ,在xwork中对result可以不用做任何处理,只要告诉它下一个界面是什么就可以了!   
  43. 其中:${param.categoryId}和${param.testId}是得到上个界面的值得!   
  44.     2. 如果在两个页面传值,中间经过了一个java文件,那么可以通过xwork进行传值,具体做法如果下   
  45. jsp:   
  46.  <c:url var="testContent" value="/admin/select_Test_category.action">  
  47.                     <c:param name="model.test_id" value="${test.testId}"/>  
  48.                     <c:param name="model.category_id" value="${test.categoryId}"/>  
  49.                 </c:url>  
  50.                 <a href="${testContent}">编辑</a>  
  51. xwork中:   
  52. <action name="select_Test_category" class="com.cool.lvjiachun.Select_Test_categoryAction">  
  53.             <result name="success" type="dispatcher">  
  54.                 <param name="location">/cool/lvjiachun/test_category.jsp</param>  
  55.             </result>  
  56.             <result name="alone" type="dispatcher">  
  57.                 <param name="location">  
  58.                     /cool/lvjiachun/editor_test_category.jsp?model.category_id=${model.category_id}</param>  
  59.             </result>  
  60.             <interceptor-ref name="WSStack"/>  
  61.         </action>  
  62. 看一下result是怎么弄得吧,“?model.category_id=${model.category_id}”,${model.category_id}是第一个jsp“<c:paramnamec:paramname="model.test_id"value="${test.testId}"/>”   
  63. 里的name,这样值在下一个界面就可以得到了   
  64. 下一个jsp,也就是editor_test_category.jsp,   
  65.   <ww:a href="admin/getTestList.action?model.category_id=${model.category_id}&id=${model.category_id}" value="返回">  
  66.         返回   
  67.     </ww:a>  
  68. 这样就可以了!   
  69.   3.如果要经过两个action,经过一个action后还要经过另一个action才能到下一个jsp,后一个action需要jsp界面的数据,那么可以用重定向redirect,这样就可以达到你想要的结果!(也可以不用,但要通过数据库在去查数据,这样很耗费时间,也麻烦)   
  70. 例如:   
  71. jsp:   
  72. <ww:form action="/admin/addTestCategory.action" method="post" validate="true">  
  73.         <ww:textfield label="添加分类" name="test.testName" required="true"/>  
  74.         <ww:submit value="添加"></ww:submit>  
  75.         <ww:url id="listlink" namespace="/admin" action="getTestList" method="getList"></ww:url>  
  76.         <ww:hidden name="test.categoryId" value="${param.id}"></ww:hidden>  
  77.     </ww:form>  
  78. xwork中:   
  79. <action name="addTestCategory" class="com.dream.action.TestCategoryAction" method="insert">  
  80.             <external-ref name="testcategoryDAO">testcategoryDAOProxy</external-ref>  
  81.             <result name="success" type="redirect">  
  82.                 <param name="location">/admin/getTestList.action?id=${test.categoryId}&amp;model.category_id=${test.categoryId}</param>  
  83.             </result>  
  84.             <result name="input" type="redirect">  
  85.                 <param name="location">/admin/getTestList.action?model.category_id=${test.categoryId}&amp;id=${test.categoryId}</param>  
  86.             </result>  
  87.             <interceptor-ref name="WSStack"/>  
  88.             <interceptor-ref name="validationWorkflowStack"/>  
  89.         </action>  
  90. “${param.id}”,看到了吧,它就是1的方法得到的!!!   
  91.             其实这些也是经过才做到的,发在这里有兴趣的大家分享一下,也许我描述不对,但我相信大家看例子也可以看懂得!如果有什么不对的地方,也请前辈们谅解并给予纠正!   
  92.   
  93. 更多资料:http://issues.apache.org/struts/secure/attachment/13110/portlet-app.patch   
  94. http://xiaosao.blog.javascud.org/post/59.htm   
  95. <ec:row    
  96. ondblclick="location.href='editCraftWork.html?id=${pageScope.craftWorkList.id}&productId=${pageScope.craftWorkList.product.id}'">  
  97. </ec:row>  
  98. <input type="button" style="margin-right: 5px"  
  99.         onclick="location.href='editCraftWork.html?method=Add&from=list&productId=<ww:property value="%{productId}"/>'"   
  100.         value="<fmt:message key="button.add"/>"/>  
  101.   
分享到:
评论

相关推荐

    struts-xwork-core源码

    此外,对于初学者,建议从以下几个方面入手: - 分析Action的生命周期,了解何时创建、何时销毁,以及如何执行Action方法。 - 研究拦截器的实现,了解如何自定义拦截器并将其添加到配置中。 - 学习OGNL的用法,理解...

    Struts 2源码查看xwork-2.1.5第一部分

    4. **Result**:定义了Action执行后的输出,可以是跳转到另一个页面,也可以是返回JSON或XML数据。 5. **ActionMapping**:包含了Action的配置信息,如Action类、方法、结果等。 通过分析XWork的源码,开发者可以更...

    简单struts登录界面,供新手学习

    在提供的"简单struts登录界面"中,我们可以通过两个JSP页面、一个Action和一个FormAction来理解Struts的基本工作流程。 首先,我们来看JSP页面。在Struts中,JSP主要负责展示视图部分。这里有两个JSP页面,一个是...

    struts2简单的例子和开发必需包

    2. **配置文件**:主要有两个,一个是`struts.xml`,它是Struts2的主配置文件,用于定义Action类、结果页面、拦截器等;另一个是`web.xml`,负责设置Servlet容器的配置,如过滤器和监听器。 3. **Interceptor(拦截...

    struts jar包

    Struts框架是由Apache软件基金会开发的,它的主要目标是简化Java Servlet和JSP的开发,通过提供一种组织良好且易于理解的结构来管理业务逻辑、数据访问以及用户界面。Struts 1.x版本的jar包通常包含以下几个核心组件...

    jsp中Action使用session方法实例分析.docx

    本文将详细介绍在 JSP 和 Struts2 中如何在 Action 类中使用 Session,包括两种主要的方法:通过 `ActionContext` 获取 Session 和实现 `SessionAware` 接口。 #### 一、通过 `ActionContext` 获取 Session 在 ...

    struts0003.zip_struts

    在描述中提到的"简单的jsp页面",可能涉及到以下几个方面: 1. JSP(JavaServer Pages)是用于动态生成HTML、XML或其他格式文档的技术,通常用于视图层。在Struts中,JSP通常作为Result来显示用户界面。 2. 注册登录...

    webwork深入浅出

    当前WebWork已经发展成两个项目:Xwork和WebWork2。Xwork主要负责提供核心功能,如前端拦截机制、运行时表单属性验证、类型转换、强大的表达式语言(OGNL)及IoC容器等。而WebWork2则在此基础上进一步处理HTTP请求和...

    strust2.0必须的几个jar整合

    9. **commons-fileupload.jar**和**commons-io.jar**:这两个库分别提供了文件上传和I/O操作的支持,对于处理Web表单中的文件上传功能至关重要。 10. **struts2-config-browser-plugin.jar**:这个插件提供了一个...

    STRUTS 2 动态上传附件

    4. **结果配置**: 定义了两个结果,分别对应成功后的不同页面跳转。 ```xml /jsp/paper/borrowcirculation/upFile.jsp /jsp/paper/borrowcirculation/upFileView.jsp ``` **总结** 本文...

    strus的后台登陆系统

    在Struts框架中,主要涉及以下几个关键知识点: 1. **Action类**:在Struts中,Action类是处理用户请求的核心组件。它实现了`com.opensymphony.xwork2.Action`接口,通常包含处理业务逻辑的方法。在这个登录系统中...

    Struts2登录小案例

    6. **创建JSP页面**:创建两个JSP页面,一个用于展示登录表单(login.jsp),另一个用于显示登录成功的消息(success.jsp)。在login.jsp中,使用Struts2的标签库来创建表单并提交数据: ```jsp ... &lt;s:form ...

    Struts2环境配置与基本操作演示

    这个应用可能包含以下几个部分: 1. **Action类**:如`HelloWorldAction.java`,实现简单的业务逻辑。 2. **配置文件**:如`struts.xml`,定义Action的映射和结果页面。 3. **JSP页面**:如`hello.jsp`,展示Action...

    webwork的工作流程

    WebWork 2.x 分为两个项目:Xwork 和 WebWork,其中Xwork作为核心部分提供诸如拦截器、表单验证、类型转换和强大的表达式语言(OGNL)等功能。Struts2 是在WebWork的基础上发展起来的,继承了其灵活性和便利性。 ...

    struts练习 初学者入门

    4. **JSP**:视图层主要由JSP页面构成,通过使用Struts标签库(Struts Tags)如&lt;s:form&gt;、&lt;s:textfield&gt;等,可以轻松地创建动态页面,同时与ActionForm进行数据交互。 5. **Tiles**:在更复杂的项目中,Struts还...

    struts2_apps部分

    2. **配置文件**:Struts2的配置主要通过两个文件进行,即`struts.xml`和`web.xml`。`struts.xml`负责定义Action、结果类型、拦截器栈等,而`web.xml`则进行过滤器配置,将所有HTTP请求转发到Struts2框架。 3. **...

    Struts2登录例子

    在本例中,有两个JSP页面:一个是登录表单页面(例如`login.jsp`),另一个是登录成功或失败后的结果页面(例如`success.jsp`或`error.jsp`)。 5. **ActionMapping和ActionInvocation**:ActionMapping表示Action...

    struts2 code

    7. **Result类型**:Action执行后的结果通常会定向到一个JSP页面或者其他的资源,这由Result类型决定。Struts2提供了多种Result类型,如dispatcher(用于转发到JSP)、stream(用于下载文件)等。 8. **插件体系**...

Global site tag (gtag.js) - Google Analytics