【Struts框架】第一节Action-action接受参数

Action接受参数的方式

方式1:

链接:
<a href="<%=basePath %>javaee/user!add?name=jack&&age=21">添加用户</a>

struts.xml:

<package name="default" namespace="/javaee" extends="struts-default">
   <action name="user" class="cn.edu.hpu.action.UserAction">
       <result name="success">/User_Add_success.jsp</result>
   </action>
</package> 

UserAction(写法相当于一个JavaBean):

package cn.edu.hpu.action;

public class UserAction {

private String name;
private int age;

public String add(){
System.out.println("name="+name);
System.out.println("age="+age);
return "success";
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

User_Add_success.jsp:

<html>
  <head>
    <title>My JSP 'User_Add_success.jsp' starting page</title>
  </head>

  <body>
    User Add success! <br>
  </body>
</html>

原理:?name=jack&&age=21为什么能把值传给JavaBean,并且在add方法中可以看到传过来的参数值?
答:当new这个Action的时候,struts会自动的把javaBean的各种“属性”从“参数”中拿出来帮你设置好(struts自己调用JavaBean的set和get方法)。

方法2:使用DomainModel(域模型DML)
struts.xml:

<package name="default" namespace="/javaee" extends="struts-default">
<action name="user2" class="cn.edu.hpu.action.UserAction2">
       <result name="success">/User_Add_success.jsp</result>
</action>
</package>

User.java:

package cn.edu.hpu.mode;

public class User {

private String name;
private int age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

UserAction2(写法相当于一个JavaBean):

package cn.edu.hpu.action;

import cn.edu.hpu.mode.User;

public class UserAction2 {

private User user;

public String add(){
System.out.println("name="+user.getName());
System.out.println("age="+user.getAge());
return "success";
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}
}

链接:
 使用Domain Model传递参数<a href="<%=basePath %>javaee/user2!add?user.name=tom&&user.age=12">添加用户</a><br/>

User_Add_success.jsp:

<html>
  <head>
    <title>My JSP 'User_Add_success.jsp' starting page</title>
  </head>

  <body>
    User Add success! <br>
  </body>
</html>

方法3:继承ModelDriven接口(不推荐使用)

略(就是直接接收一个Form表单对应的实体类)

有关中文参数乱码的问题:

如果不在struts中指定web应用的默认编码集的话,传参时会出现乱码的情况

所以要在struts.xml中设置默认编码集,设置网页的编码方式(下面的例子设置为UTF-8)

<constant name="struts.i18n.encoding" value="UTF-8"></constant>

转载请注明出处:http://blog.csdn.net/acmman/article/details/44158499

时间: 2024-08-30 07:22:34

【Struts框架】第一节Action-action接受参数的相关文章

Akka框架——第一节:并发编程简介

本节主要内容: 1. 重要概念 2. Actor模型 3. Akka架构简介 多核处理器的出现使并发编程(Concurrent Programming)成为开发人员必备的一项技能,许多现代编程语言都致力于解决并发编程问题.并发编程虽然能够提高程序的性能,但传统并发编程的共享内存通信机制对开发人员的编程技能要求很高,需要开发人员通过自身的专业编程技能去避免死锁.互斥等待及竞争条件(Race Condition)等,熟悉Java语言并发编程的读者们对这些问题的理解会比较深刻,这些问题使得并发编程比顺

struts2-Struts2 &amp;amp;lt;s:action&amp;amp;gt;能接受参数,但是不能使用Action

问题描述 Struts2 <s:action>能接受参数,但是不能使用Action 没有办法执行下去" int sid_int=Integer.valueOf(sid);"这部分 why? 思路:想在 lookstock.jsp页面上显示出 某一张采购单 和 这张采购单的明细(这里两张表) 通过页面上的 来获取到这张采购单的明细信息.怎么样我也没有办法执行下去后面.总显示不到明细. StockdetailAction package ssh2.jxc.wjr.action;

【struts框架】第一节Action-路径问题与创建Action方法

1.路径问题 路径问题说明: struts中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径. 虽然可以使用redirect方式解决,但redirect方式并非必要. 解决办法非常简单,统一使用绝对路径.(在jsp中用request.getContextRoot方式来拿到webapp的路径) 或者使用myeclipse经常用的,指定basePath: myeclipse建立jsp页面给自动生成的东西 <% String path = request.getCon

Java的Struts框架中Action的编写与拦截器的使用方法_java

Struts2 Action/动作动作是Struts2框架的核心,因为他们的任何MVC(模型 - 视图 - 控制器)框架.每个URL将被映射到一个特定的动作,它提供了来自用户的请求提供服务所需的处理逻辑. 但动作也提供其他两个重要的能力.首先,操作从请求数据的传输中起着重要的作用,通过向视图,无论是一个JSP或其它类型的结果.二,动作必须协助的框架,在确定结果应该渲染视图,在响应该请求将被退回. 创建动作:在Struts2的动作,唯一的要求是必须有一个无参数的方法返回String或结果的对象,必

ssh整合-JAVA SSH Struts 关于a标签调用Action含参数就异常反之正常

问题描述 JAVA SSH Struts 关于a标签调用Action含参数就异常反之正常 struts 异常 Action path SSH 异常信息 There is no Action mapped for namespace [/dd] and action name [laladList] associated with context path [/baee]. - [unknown location] at com.opensymphony.xwork2.DefaultActionP

java-SSH Action 动态调用 参数 404异常

问题描述 SSH Action 动态调用 参数 404异常 1. 异常情况: 1. There is no Action mapped for namespace [/dd] and action name [laladList] associated with context path [/baee]. - [unknown location] 1. at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy

action-Struts2用Action属性接收参数报错

问题描述 Struts2用Action属性接收参数报错 这个项目报错如下:There is no Action mapped for namespace [/] and action name [user!add] associated with context path [/input]. struts.xml的配置如下: UserAction.java文件 package com.wxh.action;import com.opensymphony.xwork2.ActionSupport;

在JSP页面获取后台action封装的参数,这个参数里面又含有两个对象,二层引用,报错

问题描述 在JSP页面获取后台action封装的参数,这个参数里面又含有两个对象,二层引用,报错 javax.el.PropertyNotFoundException: Property 'userAccount' not found on type java.lang.String 上面是报错信息, 下面是JSP页面: 用户名: ${commentlist.userAccount.userName } 职业: ${commentlist.userAccount.job } ${commentl

从js向Action传中文参数出现乱码问题的解决方法_javascript技巧

做项目的时候,发现Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题:但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象.几经询问百度,上面说法很多. 经过实践发现下面的方法可以解决中文乱码问题: JSP的JS中:中文参数用encodeURI(encodeURI(中文参数)),经过两次转码.例如: 复制代码 代码如下: function show(next,id,realName){ document.forms['f2'].a