search
HomeJavajavaTutorialLearning Jakarta Struts 1.1 (2)


  DynaActionForm
 
  DynaActionForm provides a convenient mechanism that essentially eliminates the need to write an ActionForm. DynaActionForm allows dynamic form properties. This means that you can define properties in your struts-config.xml file and set the form type to org.apache.struts.action.DynaActionForm. Nothing needs to be written. DynaActionForm uses DynaBean from the Apache public project to complete these operations. This dynamic behavior is provided through reflection and hashmaps.
  
  DynaActionForm is defined using tags in the struts-config. The attribute name is used to index the form bean in the Action, and type is used to specify the instantiated class. When using class DynaActionForm, the dynamic properties automatically default to true. For DynaActionForm, all properties of the form are specified using elements. The name in the element refers to the attribute name. Type refers to the class name of the Java implementation class of the bean attribute. If this attribute is of index type, add "[ ]" after type. In the above table, you should pay attention to the definition of the last attribute genre. We set the initial value (or default value) to "Dance". This value will also be set as the default value when the reset() method in DynaActionForm is called, and allows a mechanism to set default values ​​in the form. If no value is specified in the initial attribute, then the initial value of all primitive types is set to 0, if it is an object, the initial value is null (empty).
 
 Using DynaActionForm is very convenient. One of the main benefits is that you only need to write very little code. Just like other forms, the preceding code example is all the code you need to use the form. One thing to know is validation. When using DynaActionForm, it is assumed that validation processing is done somewhere, which is somewhat different from ActionForm. You can implement validation in your own Action, but this is a better approach.
 
 For verification, you can use DynaValidatorForm or DynaValidatorActionForm. Both classes are in the org.apache.struts.validator package. By extending DynaActionForm, you can get validation based on basic value fields of XML files. Validation is based on the key entered into the validator. Key is the name attribute from the struts-config.xml file. It should match the name attribute of the form element in the validation.xml file.
 
 Multiple application support
 In Struts 1.1, multiple sub-applications can be defined and supported. This means you can put your application in a sub-application that is more maintainable. You no longer need to detect source control outside of the single struts-config.xml file.
 
Another reason to use subapplications is to change the control flow based on the client. In some applications, you may have some common pages, but the control flow may change depending on the client logging into the application. You can store this control flow metadata in a database and generate a web.xml file (or part of it), along with a different struts-config.xml file.
 
If you have ever developed for Struts 1.x, you may have noticed that many elements in the web.xml file have been moved to the struts-config.xml file of Struts 1.1. This is because now they are application-specific. Multiple sub-applications are identified by the prefix that begins with the relative context portion of the request URI. If no application prefix matches, the default configuration is selected. The default setting has an empty string prefix. This way of implementing default settings is backwards compatible with Struts 1.0.x where only one application may be defined.
 
 If you have a large application that contains different functional modules, it makes more sense to replace one huge application with sub-applications that run together. The file web.xml shown below shows how to define a sub-application.
  
  
  config
  /WEB-INF/struts-config-config.xml
  
 
 
 
  
  config/catalog
  /WEB-INF/struts-config-catalog.xml
 
 
 
 
  
  config/sorter
  /WEB- INF/struts-config-sorter.xml
   
  
  
  When using sub-applications, you may define context-sensitive request URIs to specify which sub-application is used. For example, an action on a form might look like this:
  
  
  which references the default sub-application, or
  
  
  which refers to the action class of the catalog sub-application. You don't actually have to do this. You can use /listCds in the catalog sub-application if you want to do this. The basic rule is: all struts-config.xml parameters that were context-sensitive in version 1.0 are now sub-application prefix-specific in version 1.1. In this way, a single application can serve as both a default sub-application and a designated sub-application without modification.

The above is the content of learning Jakarta Struts 1.1 (2). For more related articles, please pay attention to the PHP Chinese website (www.php.cn)!


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Top 4 JavaScript Frameworks in 2025: React, Angular, Vue, SvelteTop 4 JavaScript Frameworks in 2025: React, Angular, Vue, SvelteMar 07, 2025 pm 06:09 PM

This article analyzes the top four JavaScript frameworks (React, Angular, Vue, Svelte) in 2025, comparing their performance, scalability, and future prospects. While all remain dominant due to strong communities and ecosystems, their relative popul

How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache?How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache?Mar 17, 2025 pm 05:44 PM

The article discusses implementing multi-level caching in Java using Caffeine and Guava Cache to enhance application performance. It covers setup, integration, and performance benefits, along with configuration and eviction policy management best pra

How does Java's classloading mechanism work, including different classloaders and their delegation models?How does Java's classloading mechanism work, including different classloaders and their delegation models?Mar 17, 2025 pm 05:35 PM

Java's classloading involves loading, linking, and initializing classes using a hierarchical system with Bootstrap, Extension, and Application classloaders. The parent delegation model ensures core classes are loaded first, affecting custom class loa

Node.js 20: Key Performance Boosts and New FeaturesNode.js 20: Key Performance Boosts and New FeaturesMar 07, 2025 pm 06:12 PM

Node.js 20 significantly enhances performance via V8 engine improvements, notably faster garbage collection and I/O. New features include better WebAssembly support and refined debugging tools, boosting developer productivity and application speed.

Iceberg: The Future of Data Lake TablesIceberg: The Future of Data Lake TablesMar 07, 2025 pm 06:31 PM

Iceberg, an open table format for large analytical datasets, improves data lake performance and scalability. It addresses limitations of Parquet/ORC through internal metadata management, enabling efficient schema evolution, time travel, concurrent w

Spring Boot SnakeYAML 2.0 CVE-2022-1471 Issue FixedSpring Boot SnakeYAML 2.0 CVE-2022-1471 Issue FixedMar 07, 2025 pm 05:52 PM

This article addresses the CVE-2022-1471 vulnerability in SnakeYAML, a critical flaw allowing remote code execution. It details how upgrading Spring Boot applications to SnakeYAML 1.33 or later mitigates this risk, emphasizing that dependency updat

How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading?How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading?Mar 17, 2025 pm 05:43 PM

The article discusses using JPA for object-relational mapping with advanced features like caching and lazy loading. It covers setup, entity mapping, and best practices for optimizing performance while highlighting potential pitfalls.[159 characters]

How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution?How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution?Mar 17, 2025 pm 05:46 PM

The article discusses using Maven and Gradle for Java project management, build automation, and dependency resolution, comparing their approaches and optimization strategies.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.