This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please upgrade to a browser that supports web standards. It's free and painless.
| « | 十一月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
这几个方法是在做项目时用到的,记在这里,如果忘记了可以参考一下,大家如果感兴趣,也可以参考一下,我想对初学webwork的应该会有一些帮助,我做东西没太多的经验,可能有很多地方说的不对,写得时候也是按照自己的理解写上去的,例子里的代码,是我做东西时候的真实代码,也是可行的,主要是说明一下怎么做。
起初属于无奈,因为不能经过后台连接数据库得到数据,即使能得到,也是很麻烦,很耗费时间,无奈通过xwork进行传值!现在发现挺好的一件事情,也许有弊端,但我的经验不足,暂时并没有发现,如果有什么不对的地方,希望大家给点意见,批评一下,呵呵,我是大一的学生!
1.如果这个页面的数据要给下一个页面,且不经过java文件处理,可以用这个方法!
那是一个request的周期问题,因为在两个jsp界面通过xwork进行跳转,需要传相同的数据或者下一个界面要用到上一个jsp页面的数据时就可以像下面那样传值,要注意的是,两个jsp页面,在xwork跳转的时候不能经过java文件也就是不能让另一个java文件进行处理,如果在经过一个java文件,那么request存储的数据就会丢失!相反,request存储的数据就会存在。
例如,
jsp:
<c:url var="testContent" value="/admin/addcontent.action">
<c:param name="testId" value="${test.testId}"/>
<c:param name="categoryId" value="${test.categoryId}"/>
</c:url>
<a href="${testContent}">添加</a>
xwork中:
<action name="addcontent">
<result>/dream/admin/addcontent.jsp</result>
</action>
不需要做任何的处理,但要记住,不能经过后台!(也许可以经过后台,只要不进行存储数据就可以,但我没试过,因为那样就没有意义了!)
另一个jsp(addcontent.jsp):
<ww:a href="admin/getTestList.action?model.category_id=${param.categoryId}&id=${param.categoryId}" value="返回">
返回
</ww:a>
<form action="admin/addTestContent.action" method="post" enctype="multipart/form-data">
<input type="hidden" name="categoryId" value="${param.categoryId}">
<input type="hidden" name="content.testId" value="${param.testId}">
<table align="center">
<ww:textfield label="名称" name="content.contentName" value="" required="true"/>
<tr>
<td>上传文件</td>
<td colspan="2">
<input type="file" name="file1"><br/>
<input type="file" name="file2"><br/>
<input type="file" name="file3"><br/>
<input type="file" name="file4"><br/>
<input type="file" name="file5"> <br/>
</td></tr>
<ww:submit value="提交"></ww:submit>
</table>
</form>
在另一个界面,用${param.category}得到,param指的是<c:param>标签[jstl] ,在xwork中对result可以不用做任何处理,只要告诉它下一个界面是什么就可以了!
其中:${param.categoryId}和${param.testId}是得到上个界面的值得!
2. 如果在两个页面传值,中间经过了一个java文件,那么可以通过xwork进行传值,具体做法如果下
jsp:
<c:url var="testContent" value="/admin/select_Test_category.action">
<c:param name="model.test_id" value="${test.testId}"/>
<c:param name="model.category_id" value="${test.categoryId}"/>
</c:url>
<a href="${testContent}">编辑</a>
xwork中:
<action name="select_Test_category" class="com.cool.lvjiachun.Select_Test_categoryAction">
<result name="success" type="dispatcher">
<param name="location">/cool/lvjiachun/test_category.jsp</param>
</result>
<result name="alone" type="dispatcher">
<param name="location">
/cool/lvjiachun/editor_test_category.jsp?model.category_id=${model.category_id}</param>
</result>
<interceptor-ref name="WSStack"/>
</action>
看一下result是怎么弄得吧,“?model.category_id=${model.category_id}”,${model.category_id}是第一个jsp“<c:paramname="model.test_id"value="${test.testId}"/>”
里的name,这样值在下一个界面就可以得到了
下一个jsp,也就是editor_test_category.jsp,
<ww:a href="admin/getTestList.action?model.category_id=${model.category_id}&id=${model.category_id}" value="返回">
返回
</ww:a>
这样就可以了!
3.如果要经过两个action,经过一个action后还要经过另一个action才能到下一个jsp,后一个action需要jsp界面的数据,那么可以用重定向redirect,这样就可以达到你想要的结果!(也可以不用,但要通过数据库在去查数据,这样很耗费时间,也麻烦)
例如:
jsp:
<ww:form action="/admin/addTestCategory.action" method="post" validate="true">
<ww:textfield label="添加分类" name="test.testName" required="true"/>
<ww:submit value="添加"></ww:submit>
<ww:url id="listlink" namespace="/admin" action="getTestList" method="getList"></ww:url>
<ww:hidden name="test.categoryId" value="${param.id}"></ww:hidden>
</ww:form>
xwork中:
<action name="addTestCategory" class="com.dream.action.TestCategoryAction" method="insert">
<external-ref name="testcategoryDAO">testcategoryDAOProxy</external-ref>
<result name="success" type="redirect">
<param name="location">/admin/getTestList.action?id=${test.categoryId}&model.category_id=${test.categoryId}</param>
</result>
<result name="input" type="redirect">
<param name="location">/admin/getTestList.action?model.category_id=${test.categoryId}&id=${test.categoryId}</param>
</result>
<interceptor-ref name="WSStack"/>
<interceptor-ref name="validationWorkflowStack"/>
</action>
“${param.id}”,看到了吧,它就是1的方法得到的!!!
其实这些也是经过高人指点才做到的,发在这里有兴趣的大家分享一下,也许我描述不对,但我相信大家看例子也可以看懂得!如果有什么不对的地方,也请前辈们谅解并给予纠正!
xfwowo10122 10wo8wo10 brogame wow gold wow gold wow gold wow power leveling wow power leveling wow power leveling wow power leveling oofay.com buy warhammer online gold oofay.us warhammer power leveling warhammer online power leveling 上海展览公司 上海展览公司 格力空调 格力空调 螺杆泵 螺杆泵 阀门 阀门 空调 空调 留学新加坡 留学新加坡 新加坡留学 新加坡留学 上海新加坡留学 上海新加坡留学 上海水泵 上海水泵 东方医院 东方医院 家用中央空调 家用中央空调 阀门 空调 上海展览公司 美的空调 美的中央空调 新加坡留学 留学新加坡 隔膜泵 磁力泵 东方医院 wow gold wow gold