Передача параметров означает передачу параметров на фон программы. Фон может сделать некоторую обработку, а затем сохранить контент в базе данных.
Существует много методов для прохождения параметров, как объясняется один за другим.
1. Метод прямых параметров в действии
Есть следующий файл index.jsp
Кода кода выглядит следующим образом: <? Xml version = "1.0" Encoding = "gb18030"?>
<%@ page language = "java" contentType = "text/html; charset = gb18030"
pageencoding = "gb18030"%>
<%
String path = request.getContextPath ();
String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/";
%>
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<голова>
<meta http-equiv = "content-type" content = "text /html; charset = gb18030" />
<base href = "< %= basepath %>"/>
<title> Вставьте заголовок здесь </title>
</head>
<тело>
Используйте атрибут действия, чтобы получить параметр <a href = "Пользователь/пользователь! Добавить? Name = a & age = 8"> Добавить пользователя </a>
</body>
</html>
Для <a> </a> передать программу два параметра, один - имя, а другой - возраст. Конфигурация в struts.xml заключается в следующем:
Скопируйте код кода следующим образом: <? Xml version = "1.0" Encoding = "UTF-8"?>
<! Doctype Struts Public
"-// Apache Software Foundation // DTD Struts Configuration 2.0 // en"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<Struts>
<constant name = "struts.devmode" value = "true" />
<package name = "user" extends = "struts-default" space = "/user">
<name Action = "user">
<Slust> /USER_ADD_SUCCESS.JSP </result>
</action>
</package>
</struts>
Как мы должны написать нашу пользовательский фактор в это время? Примеры следующие:
Кода кода выглядит следующим образом: пакет com.bjsxt.struts2.user.action;
Import Com.OpensyMphony.xwork2.ActionsUpport;
открытый класс пользовательский процесс расширяет ActionSupport {
Приватное название строки;
частный int возраст;
public String add () {
System.out.println ("name =" + name);
System.out.println ("age =" + age);
вернуть успех;
}
public String getName () {
вернуть имя;
}
public void setName (string name) {
this.name = name;
}
public int getage () {
Возврат возраст;
}
public void setage (int age) {
this.age = возраст;
}
}
Это очень просто, он определяет два свойства. Примечание: необходимо записано методы установки и получения этих двух свойств, и используется метод быстрого генерации Eclipse, что очень просто. Таким образом, вышеупомянутая программа напечатает желаемый результат, когда она запускается
имя = a и возраст = 8.
Объяснение выглядит следующим образом: во -первых, Struts2 автоматически передает параметры, и нам не нужно участвовать в этом процессе; Во -вторых, стойки проходят параметры, чтобы установить и получить методы, а не атрибуты имени и возраста. То есть, если мы изменим имя в нем на другие имена, такие как имя пользователя, но методы по -прежнему установлены и getName, между реализацией всей функции нет никакой разницы, оно немного неловко; В -третьих, и наиболее важным моментом является то, что если есть много атрибутов, нам нужно много набора и получить методы, что очень неудобно, поэтому расширяется следующий метод.
2. Действие Добавить метод объекта класса
В настоящее время свойства в наших 1 классифицируются в классе, такие как пользователь
Кода кода выглядит следующим образом: пакет com.bjsxt.struts2.user.model;
Пользователь открытого класса {
Приватное название строки;
частный int возраст;
public String getName () {
вернуть имя;
}
public void setName (string name) {
this.name = name;
}
public int getage () {
Возврат возраст;
}
public void setage (int age) {
this.age = возраст;
}
}
Это делает написание в классе действий намного проще
Кода кода выглядит следующим образом: пакет com.bjsxt.struts2.user.action;
Import com.bjsxt.struts2.user.model.user;
Import Com.OpensyMphony.xwork2.ActionsUpport;
открытый класс пользовательский процесс расширяет ActionSupport {
частный пользователь;
public String add () {
System.out.println ("name =" + user.getName ());
System.out.println ("age =" + user.getage ());
вернуть успех;
}
Общественный пользователь getUser () {
вернуть пользователь;
}
public void setuser (пользователь пользователя) {
this.user = user;
}
}
Примечание. В настоящее время нам не нужно вручную генерировать пользовательский объект сами. Этот процесс автоматически завершается Struts2.
И URL -адрес должен быть изменен в это время, то есть тег <a> </a> в индексе модифицируется:
Кода кода выглядит следующим образом: <? Xml version = "1.0" Encoding = "gb18030"?>
<%@ page language = "java" contentType = "text/html; charset = gb18030"
pageencoding = "gb18030"%>
<%
String path = request.getContextPath ();
String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/";
%>
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<голова>
<meta http-equiv = "content-type" content = "text /html; charset = gb18030" />
<base href = "< %= basepath %>"/>
<title> Вставьте заголовок здесь </title>
</head>
<тело>
Используйте модель домена для получения параметров <a href = "user/user! Add?
</body>
</html>
Изменить в вышеупомянутую секцию 18 строк.
Приведенное выше описывается два метода прохождения параметров StrUTS2, второй метод называется: Domainmodel, доменная модель. То есть создайте новый класс для хранения атрибутов.
Другой метод описан ниже, называемый модельным, управляемым моделью.
Он очень похож на второй метод, а другие одинаковы, за исключением того, что существует разница между действием и доступом. Его действие следующее:
Кода кода выглядит следующим образом: пакет com.bjsxt.struts2.user.action;
Import com.bjsxt.struts2.user.model.user;
Import Com.OpensyMphony.xwork2.ActionsUpport;
импорт com.opensymphony.xwork2.modeldriven;
открытый класс UserAction расширяет ActionSupport реализует ModelDiven <user> {
Частный пользователь пользователь = новый пользователь ();
public String add () {
System.out.println ("name =" + user.getName ());
System.out.println ("age =" + user.getage ());
вернуть успех;
}
@Override
публичный пользователь getModel () {
вернуть пользователь;
}
}
Из этого мы видим, что он реализует интерфейс модели и принимает общую технологию. Таким образом, Struts2 не будет автоматически создавать объект, поэтому мы можем только генерировать его вручную. Он переопределяет метод getModel () интерфейса модели, и его функция заключается в возвращении объекта класса.
Его доступ отличается от второго (как в первом методе):
Скопируйте код кода следующим образом: Используйте ModelDiven для получения параметров <a href = "Пользователь/пользователь! Добавить? Name = a & age = 8"> Добавить пользователя </a>
Он не использует метод user.name, поэтому он необходим для нового объекта.
Основным идеологическим процессом этого метода является: во -первых, действие анализирует URL, получает параметры, а затем входит в действие. Установлено, что это действие реализует интерфейс модели. В настоящее время метод getModel интерфейса модели, вызванный для получения объекта класса, а затем набор и получение методов этого класса вызываются для передачи параметров в.
Этот метод отражает идею MVC Struts2, M-Model, V --- View, C-Controller, но этот метод используется редко, а второй метод, который мы используем больше всего, является вышеуказанным.
Выше всего содержимое метода доставки параметров в Struts2. Я надеюсь, что это может дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.