form表单action传值,form表单的action属性的主要作用

http://www.itjxue.com  2023-01-21 00:25  来源:未知  点击次数: 

使用form表单进行前后台传值

例如通过提交表单进行更新操作,原生表单的写法如下:

方法1:

对应的controller中update action的传值是:

方法2:

对应的controller中update action的传值是:

方法3:

由于form中引用了@user这个实例变量,那么其中的

等价于方法2的写法,这时候就需要透过user去取值,传到后台的params其实是hash套user的hash的格式,

对应的controller中update action的传值是:

方法4.

和方法3不同在于@user是一个实例变量,而如果用 :user 则是指向user这个model进行增删改查,因此还可以写成:

这里我们用的是 f 去遍历form_for中每个字段,因此写法和上面三种原生的form表单略有不同

由于在form_for中指定了user这个model,因此我们需要透过user去取name,age的值,传到后台的params其实是hash套user的hash的格式,

对应的controller中update action的传值是:

1.params.permit(:name)这样的写法是只有一层,那么直接可以通过params[:name]来获取name的值;而params.require(:user).permit(:name)是有两层关系,需要通过params[:user][:name]才能获取name的值

2.使用f.text_field传值和input传值方式有所不同

(1)用input获取后台的值

(2)用f.text_field获取后台的值

两者的区别在于value=后面跟的是字符串"%=@user.user_name%",可以用字符串拼接的方法;而value: 后面不跟字符串而是直接用@user.user_name获取栏位中的内容

如果不确定传到后台的params是什么格式,那么可以使用pry加入断点来看

form中action的传值

会,不管是get还是post的,只要name一样,传到servlet里的都是数组。

form表单提交action 如何接收

struts2中的Action接收表单传递过来的参数有3种方法:

如,登陆表单login.jsp:

form action="login" method="post" name="form1"

用户名:s:textfield name="username"/br/

密 码:s:password name="password"/br/

s:submit value="提交"/

/form

1.在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数.

这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。

2.把表单传递过来的参数封装成一个类,然后调用其中的属性. 如,把login.jsp页面要传来的参数进行封装

Private String username;

private String password;

public String

getUsername() { return username; }

public void setUsername(Stringusername) { this.username = username; }

public String getPassword(){ return password; }

public void setPassword(String password) {this.password = password; }

然后再Action方法中,定义该类的对象就可以了,

如 public class loginAction extends ActionSupport{

private Users users;

Public Users getUsers(){ return users; }

public void setUsers(Users users){ this.users=users; } }

通过这种方法传值,还必须在jsp页面做一下处理,login.jsp中from1的属性名应该改成这样: 登陆表单login.jsp:

form action="login" method="post" name="form1"

用户名:s:textfield name="users.username"/br/

密 码:s:password name="users.password"/br/

s:submit value="提交"/

/form

这种方法,在struts开发中是很常用的一种方法!

3.通过实现ModelDriven接口接收表单数据(还没有用过,可以尝试。)

首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法

public class loginAction extends ActionSupport implements

ModelDrivenUsers{

private Users users =new Users();

public Users getModel(){ return users; }

}

form的action中怎么传参数

第一种情况:

上面表单的action属性不写时,直接点击“提交”按钮,会触发表单的提交事件,此时,通过火狐浏览器的控制台可以发现:

消息头中有如下关键信息:(1)请求地址后面通过'?'传递参数(2)请求方式为GET

From表单中的传值有那几种方法?

from表单传值的方法有post和get两种。

POST方法一般用来向目的服务器发出更新请求,并附有请求实体。GET一般用来传参数。

POST和GET的区别:

第一个:

GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以相连,如:login.action?name=seanpassword=123。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

POST把提交的数据则放置在是HTTP包的包体中。

第二个:

POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!

(责任编辑:IT教学网)

更多

推荐照片处理文章