/sun/hostadmiral/trunk/doc/todo.txt |
---|
0,0 → 1,68 |
Host Admiral TODO |
================= |
+ Save user id for all db-update operations. |
Set 'editor' for an object by loading and not require it for each property change? |
Then problem with objects inside (lazy loaded) collections. |
Specification for the model. |
Test cases for model, based on the specification. Check all bound conditions |
- e.g. security exceptions. Write a complete scenario to start with default database; |
login as admin, create users, domains, logout; login as normal user, |
create/delete/modify mailboxes and aliases etc. |
Test cases for actions, not so detailed as for the model |
(because it makes no sense to parse html pages). |
The scenario for the model test can be used. |
Cascade object deletion, confirmation page. |
Store user and malbox passwords in several forms; e.g. clear text, md5, encrypt. Allow |
admin to specify which forms to use. |
Check passwords quality (make a separate project for this). |
Show filters, search. |
Multi-page lists. |
Sort options for lists. |
Different user name schemes, not only user@domain. Define an interface to allow admin |
implement an own one. Implement a few common ones. |
+ Taglig to show ActionMessages in right way (add it to the StrutsX project). |
Allow to use existing system users: enter uid or name only, check in system for full |
information. |
+ I18n. Switch language of page on the fly. Save selection in DB for each user. |
Allow admin to define default language for server and domain. |
Split CoreResources.properties to several files. |
Show domain for user which is in the domain. |
Check, if it's possible to create (or change) an object by admin that the object's owner |
is not allowed to see it. |
Check maxlength. |
Make hierarchy of domains. |
Allow user to create domains (?) and subdomains in his domains. |
Change shell password for system user if its onwer's password is changed (?). |
Catch-all mail alias. Only one per domain. |
+ User login history. |
Listeners for all operations. |
Basic scripts to push changes to the system. |
If mailbox is created, create an user and a mail alias for it in one step - as option. |
/sun/hostadmiral/trunk/doc/features.txt |
---|
0,0 → 1,32 |
Features to implement, sorted by priority: |
Demo mode |
Configuration file to switch off unused options and features |
Antispam control |
Apache-Tomcat mapping |
Special Apache vhost parameters; e.g. Options, RewriteEngine, error pages |
Maillist management |
DNS support |
Management of limits for users: amount of domains, mails, disk quotas etc. |
Databases and their users control |
Site statistics: mail, web etc. |
Mail autoresponders |
Per user mail blacklists |
FTPd control |
Hosting plans management, billing, resellers level |
Firewall control to open ports to listen |
/sun/hostadmiral/trunk/src/ak/strutsx/taglib/EmptyTag.java |
---|
0,0 → 1,56 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx.taglib; |
import java.util.Iterator; |
import java.util.Collection; |
import java.util.Map; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.util.RequestUtils; |
import org.apache.struts.taglib.logic.ConditionalTagBase; |
public class EmptyTag |
extends ConditionalTagBase |
{ |
protected boolean condition() |
throws JspException |
{ |
return condition(true); |
} |
protected boolean condition(boolean desired) |
throws JspException |
{ |
if(this.name == null) { |
JspException e = new JspException(messages.getMessage("empty.noNameAttribute")); |
RequestUtils.saveException(pageContext, e); |
throw e; |
} |
boolean empty = true; |
Object value = null; |
if(this.property == null) |
value = RequestUtils.lookup(pageContext, name, scope); |
else |
value = RequestUtils.lookup(pageContext, name, property, scope); |
if(value != null) { |
if(value instanceof String) |
empty = (((String)value).length() < 1); |
else if(value instanceof Collection) |
empty = ((Collection)value).isEmpty(); |
else if(value instanceof Map) |
empty = ((Map)value).isEmpty(); |
else if(value instanceof Iterator) |
empty = !((Iterator)value).hasNext(); |
else |
empty = false; |
} |
return (empty == desired); |
} |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/taglib/NotEmptyTag.java |
---|
0,0 → 1,18 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx.taglib; |
import javax.servlet.jsp.JspException; |
public class NotEmptyTag |
extends EmptyTag |
{ |
protected boolean condition() |
throws JspException |
{ |
return condition(false); |
} |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/taglib/RootTag.java |
---|
0,0 → 1,37 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx.taglib; |
import java.io.IOException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.JspWriter; |
import javax.servlet.jsp.PageContext; |
import javax.servlet.jsp.tagext.TagSupport; |
import org.apache.struts.Globals; |
import org.apache.struts.util.MessageResources; |
import org.apache.struts.util.RequestUtils; |
public class RootTag |
extends TagSupport |
{ |
public int doStartTag() |
throws JspException |
{ |
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); |
try { |
pageContext.getOut().write(request.getContextPath()); |
} |
catch(IOException ex) { |
throw new JspException("Cannot write to output" + ex); |
} |
return EVAL_BODY_INCLUDE; |
} |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/taglib/MessageTag.java |
---|
0,0 → 1,91 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx.taglib; |
import java.util.Locale; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import org.apache.struts.Globals; |
import org.apache.struts.util.MessageResources; |
import org.apache.struts.util.RequestUtils; |
import org.apache.struts.util.ResponseUtils; |
public class MessageTag |
extends org.apache.struts.taglib.bean.MessageTag |
{ |
protected String valuesName = null; |
public String getValuesName() |
{ |
return this.valuesName; |
} |
public void setValuesName(String valuesName) |
{ |
this.valuesName = valuesName; |
} |
protected String valuesProperty = null; |
public String getValuesProperty() |
{ |
return this.valuesProperty; |
} |
public void setValuesProperty(String valuesProperty) |
{ |
this.valuesProperty = valuesProperty; |
} |
public int doStartTag() |
throws JspException |
{ |
String key = this.key; |
if(key == null) { |
Object value = RequestUtils.lookup(pageContext, name, property, scope); |
if(value != null && !(value instanceof String)) { |
JspException e = new JspException(messages.getMessage("message.property", key)); |
RequestUtils.saveException(pageContext, e); |
throw e; |
} |
key = (String)value; |
} |
Object[] values = null; |
if(valuesName != null || valuesProperty != null) { |
Object valuesObj = RequestUtils.lookup(pageContext, |
(valuesName == null) ? name : valuesName, valuesProperty, scope); |
if(valuesObj != null && !(valuesObj instanceof Object[])) { |
JspException e = new JspException("Properties are not an array"); |
RequestUtils.saveException(pageContext, e); |
throw e; |
} |
values = (Object[])valuesObj; |
} |
String message = RequestUtils.message(pageContext, this.bundle, |
this.localeKey, key, values); |
if(message == null) { |
JspException e = new JspException |
(messages.getMessage("message.message", "\"" + key + "\"")); |
RequestUtils.saveException(pageContext, e); |
throw e; |
} |
ResponseUtils.write(pageContext, message); |
return SKIP_BODY; |
} |
public void release() |
{ |
super.release(); |
valuesName = null; |
valuesProperty = null; |
} |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/taglib/ErrorsIteratorTag.java |
---|
0,0 → 1,46 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx.taglib; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.taglib.html.ErrorsTag; |
import org.apache.struts.util.RequestUtils; |
public class ErrorsIteratorTag |
extends ErrorsTag |
{ |
protected String id = null; |
public String getId() |
{ |
return this.id; |
} |
public void setId(String id) |
{ |
this.id = id; |
} |
public int doStartTag() |
throws JspException |
{ |
ActionErrors errors = RequestUtils.getActionErrors(pageContext, name); |
if(errors != null) |
pageContext.setAttribute(id, (property == null) ? errors.get() : errors.get(property)); |
return EVAL_BODY_INCLUDE; |
} |
public void release() |
{ |
super.release(); |
id = null; |
} |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/ResizeableDynaValidatorForm.java |
---|
0,0 → 1,91 |
package ak.strutsx; |
import java.util.Iterator; |
import java.util.TreeSet; |
import java.lang.reflect.Array; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.struts.validator.DynaValidatorForm; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.config.FormBeanConfig; |
import org.apache.struts.config.FormPropertyConfig; |
public final class ResizeableDynaValidatorForm |
extends DynaValidatorForm |
{ |
public void reset(ActionMapping mapping, HttpServletRequest request) |
{ |
super.reset(mapping, request); |
resize(mapping, request); |
} |
protected void resize(ActionMapping mapping, HttpServletRequest request) |
{ |
String name = mapping.getName(); |
if (name == null) return; |
FormBeanConfig config = mapping.getModuleConfig().findFormBeanConfig(name); |
if (config == null) return; |
FormPropertyConfig props[] = config.findFormPropertyConfigs(); |
for (int i = 0; i < props.length; i++) { |
if(props[i].getSize() > 0) // for arrays only |
resize(mapping, request, props[i]); |
} |
} |
protected void resize(ActionMapping mapping, HttpServletRequest request, |
FormPropertyConfig prop) |
{ |
String nameStart = prop.getName() + "["; |
// get all indices |
TreeSet indices = new TreeSet(); |
for(Iterator i = request.getParameterMap().keySet().iterator(); i.hasNext(); ) { |
String name = (String)i.next(); |
if(name.startsWith(nameStart)) { |
int p = name.indexOf("]"); |
if(p > 0) { |
String index = name.substring(nameStart.length(), p); |
try { |
indices.add(new Integer(index)); |
} |
catch(NumberFormatException ex) { |
} |
} |
} |
} |
// find last index in sequence |
int lastIndex = -1; |
for(Iterator i = indices.iterator(); i.hasNext(); ) { |
Integer idx = (Integer)i.next(); |
if(idx.intValue() == lastIndex+1) |
lastIndex++; |
else |
break; |
} |
// grow |
if(lastIndex > 0) { |
Class clazz = prop.getTypeClass(); |
Object initialValue = Array.newInstance(clazz.getComponentType(), lastIndex+1); |
for (int i = 0; i < lastIndex+1; i++) { |
try { |
Array.set(initialValue, i, clazz.getComponentType().newInstance()); |
} |
catch (Throwable t) { |
; // Probably does not have a zero-args constructor |
} |
} |
set(prop.getName(), initialValue); |
} |
} |
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) |
{ |
ActionErrors errors = super.validate(mapping, request); |
return errors; |
} |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/ErrorHandlerX.java |
---|
0,0 → 1,23 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
public interface ErrorHandlerX { |
public void handleErrors(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Exception; |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/RequestProcessorX.java |
---|
0,0 → 1,231 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx; |
import java.io.IOException; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.Globals; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.RequestProcessor; |
import org.apache.struts.config.ForwardConfig; |
/** |
* To use this processor add |
* <controller processorClass="ak.strutsx.RequestProcessorX" /> |
* into the struts-config.xml file. |
*/ |
public class RequestProcessorX |
extends RequestProcessor |
{ |
/** |
* <p>Process an <code>HttpServletRequest</code> and create the |
* corresponding <code>HttpServletResponse</code>.</p> |
* |
* @param request The servlet request we are processing |
* @param response The servlet response we are creating |
* |
* @exception IOException if an input/output error occurs |
* @exception ServletException if a processing exception occurs |
*/ |
public void process(HttpServletRequest request, |
HttpServletResponse response) |
throws IOException, ServletException { |
// Wrap multipart requests with a special wrapper |
request = processMultipart(request); |
// Identify the path component we will use to select a mapping |
String path = processPath(request, response); |
if (path == null) { |
return; |
} |
if (log.isDebugEnabled()) { |
log.debug("Processing a '" + request.getMethod() + |
"' for path '" + path + "'"); |
} |
// Select a Locale for the current user if requested |
processLocale(request, response); |
// Set the content type and no-caching headers if requested |
processContent(request, response); |
processNoCache(request, response); |
// General purpose preprocessing hook |
if (!processPreprocess(request, response)) { |
return; |
} |
// Identify the mapping for this request |
ActionMapping mapping = processMapping(request, response, path); |
if (mapping == null) { |
return; |
} |
// Check for any role required to perform this action |
if (!processRoles(request, response, mapping)) { |
return; |
} |
// Create or acquire the Action instance to process this request |
// Do this here, because we need the action in case form validation is failed |
Action action = null; |
if (mapping.getType() != null) { |
action = processActionCreate(request, response, mapping); |
} |
// Process any ActionForm bean related to this request |
ActionForm form = processActionForm(request, response, mapping); |
processPopulate(request, response, form, mapping); |
if (!processValidate(request, response, action, form, mapping)) { |
return; |
} |
// Process a forward or include specified by this mapping |
if (!processForward(request, response, mapping)) { |
return; |
} |
if (!processInclude(request, response, mapping)) { |
return; |
} |
// no action |
if (action == null) { |
return; |
} |
// Call the Action instance itself |
ActionForward forward = |
processActionPerform(request, response, |
action, form, mapping); |
// Process the returned ActionForward instance |
processForwardConfig(request, response, forward); |
} |
/** |
* <p>If this request was not cancelled, and the request's |
* {@link ActionMapping} has not disabled validation, call the |
* <code>validate()</code> method of the specified {@link ActionForm}, |
* and forward back to the input form if there were any errors. |
* Return <code>true</code> if we should continue processing, |
* or <code>false</code> if we have already forwarded control back |
* to the input form.</p> |
* |
* @param request The servlet request we are processing |
* @param response The servlet response we are creating |
* @param action The Action instance we are populating |
* @param form The ActionForm instance we are populating |
* @param mapping The ActionMapping we are using |
* |
* @exception IOException if an input/output error occurs |
* @exception ServletException if a servlet exception occurs |
*/ |
protected boolean processValidate(HttpServletRequest request, |
HttpServletResponse response, |
Action action, |
ActionForm form, |
ActionMapping mapping) |
throws IOException, ServletException { |
if (form == null) { |
return (true); |
} |
// Was this request cancelled? |
if (request.getAttribute(Globals.CANCEL_KEY) != null) { |
if (log.isDebugEnabled()) { |
log.debug(" Cancelled transaction, skipping validation"); |
} |
return (true); |
} |
// Has validation been turned off for this mapping? |
if (!mapping.getValidate()) { |
return (true); |
} |
// Call the form bean's validation method |
if (log.isDebugEnabled()) { |
log.debug(" Validating input form properties"); |
} |
ActionErrors errors = form.validate(mapping, request); |
if ((errors == null) || errors.isEmpty()) { |
if (log.isTraceEnabled()) { |
log.trace(" No errors detected, accepting input"); |
} |
return (true); |
} |
// Form validation failed, try to inform the action |
if((action != null) && (action instanceof ErrorHandlerX)) { |
processValidationFailed(request, response, |
(ErrorHandlerX)action, form, mapping); |
} |
// Special handling for multipart request |
if (form.getMultipartRequestHandler() != null) { |
if (log.isTraceEnabled()) { |
log.trace(" Rolling back multipart request"); |
} |
form.getMultipartRequestHandler().rollback(); |
} |
// Has an input form been specified for this mapping? |
String input = mapping.getInput(); |
if (input == null) { |
if (log.isTraceEnabled()) { |
log.trace(" Validation failed but no input form available"); |
} |
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, |
getInternal().getMessage("noInput", |
mapping.getPath())); |
return (false); |
} |
// Save our error messages and return to the input form if possible |
if (log.isDebugEnabled()) { |
log.debug(" Validation failed, returning to '" + input + "'"); |
} |
request.setAttribute(Globals.ERROR_KEY, errors); |
if (moduleConfig.getControllerConfig().getInputForward()) { |
ForwardConfig forward = mapping.findForward(input); |
processForwardConfig( request, response, forward); |
} else { |
internalModuleRelativeForward(input, request, response); |
} |
return (false); |
} |
protected void |
processValidationFailed(HttpServletRequest request, |
HttpServletResponse response, |
ErrorHandlerX errorHandler, |
ActionForm form, |
ActionMapping mapping) |
throws IOException, ServletException { |
try { |
errorHandler.handleErrors(mapping, form, request, response); |
} catch (Exception e) { |
processException(request, response, e, form, mapping); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/strutsx/RequestUtilsX.java |
---|
0,0 → 1,107 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.struts.Globals; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionServlet; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.DynaActionFormClass; |
import org.apache.struts.config.ModuleConfig; |
import org.apache.struts.config.FormBeanConfig; |
import org.apache.struts.config.FormPropertyConfig; |
import org.apache.struts.util.RequestUtils; |
public class RequestUtilsX |
extends RequestUtils |
{ |
public static ActionForm populateActionForm( |
Action action, |
HttpServletRequest request, |
String name) |
throws ServletException { |
ActionForm form = createActionForm(action, request, name); |
RequestUtils.populate(form, request); |
request.setAttribute(name, form); |
return form; |
} |
public static ActionForm createActionForm( |
Action action, |
HttpServletRequest request, |
String name) { |
return createActionForm(name, |
(ModuleConfig)request.getAttribute(Globals.MODULE_KEY), action.getServlet()); |
} |
public static ActionForm createActionForm( |
String name, |
ModuleConfig moduleConfig, |
ActionServlet servlet) { |
FormBeanConfig config = moduleConfig.findFormBeanConfig(name); |
ActionForm instance = null; |
// Create and return a new form bean instance |
if (config.getDynamic()) { |
try { |
DynaActionFormClass dynaClass = |
DynaActionFormClass.createDynaActionFormClass(config); |
instance = (ActionForm) dynaClass.newInstance(); |
initializeDynaActionForm((DynaActionForm) instance, config); |
if (log.isDebugEnabled()) { |
log.debug( |
" Creating new DynaActionForm instance " |
+ "of type '" |
+ config.getType() |
+ "'"); |
log.trace(" --> " + instance); |
} |
} catch (Throwable t) { |
log.error(servlet.getInternal().getMessage("formBean", config.getType()), t); |
return (null); |
} |
} else { |
try { |
instance = (ActionForm) applicationInstance(config.getType()); |
if (log.isDebugEnabled()) { |
log.debug( |
" Creating new ActionForm instance " |
+ "of type '" |
+ config.getType() |
+ "'"); |
log.trace(" --> " + instance); |
} |
} catch (Throwable t) { |
log.error(servlet.getInternal().getMessage("formBean", config.getType()), t); |
return (null); |
} |
} |
instance.setServlet(servlet); |
return (instance); |
} |
public static void initializeDynaActionForm(DynaActionForm instance, FormBeanConfig config) { |
if (config == null) { |
return; |
} |
FormPropertyConfig props[] = config.findFormPropertyConfigs(); |
for (int i = 0; i < props.length; i++) { |
instance.set(props[i].getName(), props[i].initial()); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/SystemUserAction.java |
---|
0,0 → 1,148 |
package ak.hostadmiral.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.util.UserException; |
import ak.hostadmiral.core.CoreResources; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
import ak.hostadmiral.core.model.SystemUser; |
import ak.hostadmiral.core.model.SystemUserManager; |
public final class SystemUserAction |
extends Action |
implements ErrorHandlerX |
{ |
public void handleErrors(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("submit".equals(mapping.getParameter())) { |
User user = (User)request.getSession().getAttribute("user"); |
initUserList(request, user); |
} |
} |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(SystemUserManager.getInstance().listSystemUsers(user)); |
Collections.sort(list, SystemUserManager.NAME_COMPARATOR); |
request.setAttribute("users", list); |
request.setAttribute("allowedToCreate", |
Boolean.valueOf(SystemUserManager.getInstance().allowedToCreate(user))); |
return mapping.findForward("default"); |
} |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
SystemUser u; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "SystemUserEditForm"); |
if(userId == null) { |
u = SystemUserManager.getInstance().create(user); |
showForm.set("enabled", Boolean.TRUE); |
} |
else { |
u = SystemUserManager.getInstance().get(user, userId); |
showForm.set("uid", StringConverter.toString(u.getUid())); |
showForm.set("name", u.getName()); |
if(u.getOwner() != null) |
showForm.set("owner", StringConverter.toString(u.getOwner().getId())); |
showForm.set("enabled", u.getEnabled()); |
showForm.set("comment", u.getComment()); |
} |
initUserList(request, user); |
request.setAttribute("u", u); |
if(u.editableBy(user)) |
return mapping.findForward("default"); |
else |
return mapping.findForward("view"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
SystemUser u = SystemUserManager.getInstance().get(user, userId); |
SystemUserManager.getInstance().delete(user, u); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
SystemUser u; |
if(userId == null) { |
u = SystemUserManager.getInstance().create(user); |
} |
else { |
u = SystemUserManager.getInstance().get(user, userId); |
} |
Integer uid = StringConverter.parseInteger(theForm.get("uid")); |
if(SystemUserManager.getInstance().uidExists(user, u, uid)) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.NONUNIQUE_SYSTEM_USER_UID); |
} |
u.setUid(user, uid); |
String name = (String)theForm.get("name"); |
if(SystemUserManager.getInstance().nameExists(user, u, name)) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.NONUNIQUE_SYSTEM_USER_NAME); |
} |
u.setName(user, name); |
Long ownerId = StringConverter.parseLong(theForm.get("owner")); |
if(ownerId == null) |
u.setOwner(user, null); |
else |
u.setOwner(user, UserManager.getInstance().get(user, ownerId)); |
u.setEnabled(user, (Boolean)theForm.get("enabled")); |
u.setComment(user, (String)theForm.get("comment")); |
SystemUserManager.getInstance().save(user, u); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
private void initUserList(HttpServletRequest request, User user) |
throws Exception |
{ |
List list = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(list, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", list); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/InetDomainAction.java |
---|
0,0 → 1,137 |
package ak.hostadmiral.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.util.UserException; |
import ak.hostadmiral.core.CoreResources; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
import ak.hostadmiral.core.model.InetDomain; |
import ak.hostadmiral.core.model.InetDomainManager; |
public final class InetDomainAction |
extends Action |
implements ErrorHandlerX |
{ |
public void handleErrors(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("submit".equals(mapping.getParameter())) { |
User user = (User)request.getSession().getAttribute("user"); |
initUserList(request, user); |
} |
} |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(InetDomainManager.getInstance().listInetDomains(user)); |
Collections.sort(list, InetDomainManager.NAME_COMPARATOR); |
request.setAttribute("domains", list); |
request.setAttribute("allowedToCreate", |
Boolean.valueOf(InetDomainManager.getInstance().allowedToCreate(user))); |
return mapping.findForward("default"); |
} |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long domainId = StringConverter.parseLong(theForm.get("id")); |
InetDomain domain; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "InetDomainEditForm"); |
if(domainId == null) { |
domain = InetDomainManager.getInstance().create(user); |
showForm.set("enabled", Boolean.TRUE); |
} |
else { |
domain = InetDomainManager.getInstance().get(user, domainId); |
showForm.set("name", domain.getName()); |
if(domain.getOwner() != null) |
showForm.set("owner", StringConverter.toString(domain.getOwner().getId())); |
showForm.set("enabled", domain.getEnabled()); |
showForm.set("comment", domain.getComment()); |
} |
initUserList(request, user); |
request.setAttribute("domain", domain); |
if(domain.editableBy(user)) |
return mapping.findForward("default"); |
else |
return mapping.findForward("view"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long domainId = StringConverter.parseLong(theForm.get("id")); |
InetDomain domain = InetDomainManager.getInstance().get(user, domainId); |
InetDomainManager.getInstance().delete(user, domain); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long domainId = StringConverter.parseLong(theForm.get("id")); |
InetDomain domain; |
if(domainId == null) { |
domain = InetDomainManager.getInstance().create(user); |
} |
else { |
domain = InetDomainManager.getInstance().get(user, domainId); |
} |
String name = (String)theForm.get("name"); |
if(InetDomainManager.getInstance().nameExists(user, domain, name)) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.NONUNIQUE_DOMAIN_NAME); |
} |
domain.setName(user, name); |
domain.setOwner(user, UserManager.getInstance().get(user, |
StringConverter.parseLong(theForm.get("owner")))); |
domain.setEnabled(user, (Boolean)theForm.get("enabled")); |
domain.setComment(user, (String)theForm.get("comment")); |
InetDomainManager.getInstance().save(user, domain); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
private void initUserList(HttpServletRequest request, User user) |
throws Exception |
{ |
List list = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(list, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", list); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/MailboxAction.java |
---|
0,0 → 1,179 |
package ak.hostadmiral.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.util.UserException; |
import ak.hostadmiral.core.CoreResources; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
import ak.hostadmiral.core.model.Mailbox; |
import ak.hostadmiral.core.model.MailboxManager; |
import ak.hostadmiral.core.model.SystemUserManager; |
import ak.hostadmiral.core.model.InetDomainManager; |
public final class MailboxAction |
extends Action |
implements ErrorHandlerX |
{ |
public void handleErrors(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("submit".equals(mapping.getParameter())) { |
User user = (User)request.getSession().getAttribute("user"); |
initLists(request, user); |
} |
} |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(MailboxManager.getInstance().listMailboxes(user)); |
Collections.sort(list, MailboxManager.LOGIN_COMPARATOR); |
request.setAttribute("mailboxes", list); |
request.setAttribute("allowedToCreate", |
Boolean.valueOf(MailboxManager.getInstance().allowedToCreate(user))); |
return mapping.findForward("default"); |
} |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long boxId = StringConverter.parseLong(theForm.get("id")); |
Mailbox mailbox; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "MailboxEditForm"); |
if(boxId == null) { |
mailbox = MailboxManager.getInstance().create(user); |
showForm.set("enabled", Boolean.TRUE); |
showForm.set("viruscheck", Boolean.TRUE); |
showForm.set("spamcheck", Boolean.TRUE); |
} |
else { |
mailbox = MailboxManager.getInstance().get(user, boxId); |
showForm.set("login", mailbox.getLogin()); |
if(mailbox.getDomain() != null) |
showForm.set("domain", StringConverter.toString(mailbox.getDomain().getId())); |
if(mailbox.getOwner() != null) |
showForm.set("owner", StringConverter.toString(mailbox.getOwner().getId())); |
showForm.set("viruscheck", mailbox.getVirusCheck()); |
showForm.set("spamcheck", mailbox.getSpamCheck()); |
if(mailbox.getSystemUser() != null) |
showForm.set("systemuser", StringConverter.toString(mailbox.getSystemUser().getId())); |
showForm.set("enabled", mailbox.getEnabled()); |
showForm.set("comment", mailbox.getComment()); |
} |
initLists(request, user); |
request.setAttribute("mailbox", mailbox); |
if(mailbox.editableBy(user)) |
return mapping.findForward("default"); |
else |
return mapping.findForward("view"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long boxId = StringConverter.parseLong(theForm.get("id")); |
Mailbox mailbox = MailboxManager.getInstance().get(user, boxId); |
MailboxManager.getInstance().delete(user, mailbox); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long boxId = StringConverter.parseLong(theForm.get("id")); |
Mailbox mailbox; |
String password = (String)theForm.get("password"); |
if(boxId == null) { |
if(password == null || password.equals("")) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.PASSWORD_REQUIRED); |
} |
mailbox = MailboxManager.getInstance().create(user); |
// FIXME: create an user as owner of the new mailbox here, |
// create a mail alias with the same name |
} |
else { |
mailbox = MailboxManager.getInstance().get(user, boxId); |
} |
mailbox.setDomain(user, InetDomainManager.getInstance().get(user, |
StringConverter.parseLong(theForm.get("domain")))); |
String login = (String)theForm.get("login"); |
if(MailboxManager.getInstance().loginExists(user, mailbox, login)) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.NONUNIQUE_MAILBOX_LOGIN); |
} |
mailbox.setLogin(user, login); |
mailbox.setOwner(user, UserManager.getInstance().get(user, |
StringConverter.parseLong(theForm.get("owner")))); |
mailbox.setVirusCheck(user, (Boolean)theForm.get("viruscheck")); |
mailbox.setSpamCheck(user, (Boolean)theForm.get("spamcheck")); |
Long systemUserId = StringConverter.parseLong(theForm.get("systemuser")); |
if(systemUserId == null) { |
mailbox.setSystemUser(user, null); |
} |
else { |
mailbox.setSystemUser(user, SystemUserManager.getInstance().get(user, systemUserId)); |
} |
if(password != null && !password.equals("")) |
mailbox.setPassword(user, password); |
mailbox.setEnabled(user, (Boolean)theForm.get("enabled")); |
mailbox.setComment(user, (String)theForm.get("comment")); |
MailboxManager.getInstance().save(user, mailbox); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
private void initLists(HttpServletRequest request, User user) |
throws Exception |
{ |
List users = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(users, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", users); |
List systemUsers = new ArrayList(SystemUserManager.getInstance().listSystemUsers(user)); |
Collections.sort(systemUsers, SystemUserManager.UID_COMPARATOR); |
request.setAttribute("systemusers", systemUsers); |
List domains = new ArrayList(InetDomainManager.getInstance().listInetDomains(user)); |
Collections.sort(domains, InetDomainManager.NAME_COMPARATOR); |
request.setAttribute("domains", domains); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/MailAliasAction.java |
---|
0,0 → 1,291 |
package ak.hostadmiral.core.action; |
import java.util.List; |
import java.util.Iterator; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.commons.beanutils.BeanUtils; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.util.UserException; |
import ak.hostadmiral.core.CoreResources; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
import ak.hostadmiral.core.model.Mailbox; |
import ak.hostadmiral.core.model.MailboxManager; |
import ak.hostadmiral.core.model.MailAlias; |
import ak.hostadmiral.core.model.MailAliasManager; |
import ak.hostadmiral.core.model.MailAliasDestination; |
import ak.hostadmiral.core.model.MailAliasDestinationManager; |
import ak.hostadmiral.core.model.InetDomainManager; |
import ak.hostadmiral.core.form.MailAliasDestBean; |
public final class MailAliasAction |
extends Action |
implements ErrorHandlerX |
{ |
public void handleErrors(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("submit".equals(mapping.getParameter())) { |
User user = (User)request.getSession().getAttribute("user"); |
initLists(request, user); |
} |
} |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(MailAliasManager.getInstance().listMailAliases(user)); |
Collections.sort(list, MailAliasManager.ADDRESS_COMPARATOR); |
request.setAttribute("aliases", list); |
request.setAttribute("allowedToCreate", |
Boolean.valueOf(MailAliasManager.getInstance().allowedToCreate(user))); |
return mapping.findForward("default"); |
} |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
MailAlias alias; |
Long aliasId = StringConverter.parseLong(theForm.get("id")); |
List dests; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "MailAliasEditForm"); |
if(aliasId == null) { |
alias = MailAliasManager.getInstance().create(user); |
dests = new ArrayList(); |
showForm.set("enabled", Boolean.TRUE); |
} |
else { |
alias = MailAliasManager.getInstance().get(user, aliasId); |
dests = new ArrayList(MailAliasDestinationManager.getInstance() |
.listMailAliasesDestination(alias)); |
MailAliasDestBean[] d = new MailAliasDestBean[dests.size()]; |
// FIXME: sort dests here |
for(int i = 0; i < dests.size(); i++) { |
d[i] = new MailAliasDestBean((MailAliasDestination)dests.get(i)); |
} |
showForm.set("dests", d); |
showForm.set("address", alias.getAddress()); |
if(alias.getDomain() != null) |
showForm.set("domain", StringConverter.toString(alias.getDomain().getId())); |
if(alias.getOwner() != null) |
showForm.set("owner", StringConverter.toString(alias.getOwner().getId())); |
showForm.set("enabled", alias.getEnabled()); |
showForm.set("comment", alias.getComment()); |
} |
initLists(request, user); |
request.setAttribute("alias", alias); |
request.setAttribute("dests", dests); |
if(alias.editableBy(user)) |
return mapping.findForward("default"); |
else if(alias.mayChangeDestinations(user)) |
return mapping.findForward("editdests"); |
else |
return mapping.findForward("view"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long aliasId = StringConverter.parseLong(theForm.get("id")); |
MailAlias alias = MailAliasManager.getInstance().get(user, aliasId); |
MailAliasManager.getInstance().delete(user, alias); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long aliasId = StringConverter.parseLong(theForm.get("id")); |
MailAlias alias = (aliasId == null) |
? MailAliasManager.getInstance().create(user) |
: MailAliasManager.getInstance().get(user, aliasId); |
MailAliasDestBean[] dests = (MailAliasDestBean[])theForm.get("dests"); |
// submit |
if(request.getParameter("submit") != null) { |
// FIXME: if empty element of select box is active, it will be changed |
// by submit |
// validate required fields, because it cannot be done in general case |
if(StringConverter.isEmpty(theForm.get("address"))) { |
handleErrors(mapping, form, request, response); |
throw new UserException("ak.hostadmiral.core.mail.alias.edit.address.empty"); |
} |
if(StringConverter.isEmpty(theForm.get("domain"))) { |
handleErrors(mapping, form, request, response); |
throw new UserException("ak.hostadmiral.core.mail.alias.edit.domain.wrong"); |
} |
if(StringConverter.isEmpty(theForm.get("owner"))) { |
handleErrors(mapping, form, request, response); |
throw new UserException("ak.hostadmiral.core.mail.alias.edit.owner.wrong"); |
} |
alias.getDestinations(user).clear(); |
for(int i = 0; i < dests.length; i++) { |
// FIXME: validate dest id, mailbox id, email |
// skip empty rows |
if((dests[i].getMailbox() == null) |
&& (dests[i].getEmail() == null || dests[i].getEmail().equals(""))) |
continue; |
// get bean |
Long destId = StringConverter.parseLong(dests[i].getId()); |
Long mailboxId = StringConverter.parseLong(dests[i].getMailbox()); |
MailAliasDestination dest; |
if(destId == null) |
dest = MailAliasDestinationManager.getInstance().create(user); |
else |
dest = MailAliasDestinationManager.getInstance().get(user, destId); |
// connect |
dest.setAlias(user, alias); |
alias.getDestinations(user).add(dest); |
// set mailbox or email |
if(mailboxId != null) { |
dest.setMailbox(user, MailboxManager.getInstance().get(user, mailboxId)); |
dest.setEmail(user, null); |
} |
else if(dests[i].getEmail() != null && !dests[i].getEmail().equals("")) { |
dest.setMailbox(user, null); |
dest.setEmail(user, dests[i].getEmail()); |
} |
dest.setEnabled(user, dests[i].getEnabled()); |
dest.setComment(user, dests[i].getComment()); |
} |
alias.setDomain(user, InetDomainManager.getInstance().get(user, |
StringConverter.parseLong(theForm.get("domain")))); |
String address = (String)theForm.get("address"); |
if(MailAliasManager.getInstance().addressExists(user, alias, address)) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.NONUNIQUE_MAIL_ALIAS_ADDRESS); |
} |
alias.setAddress(user, address); |
alias.setOwner(user, UserManager.getInstance().get(user, |
StringConverter.parseLong(theForm.get("owner")))); |
alias.setEnabled(user, (Boolean)theForm.get("enabled")); |
alias.setComment(user, (String)theForm.get("comment")); |
// update alias |
MailAliasManager.getInstance().save(user, alias); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
// add |
else if(request.getParameter("add") != null) { |
// FIXME: if called when no entries defined two rows are created |
MailAliasDestBean[] newDests = new MailAliasDestBean[dests.length+1]; |
if(dests.length > 0) |
System.arraycopy(dests, 0, newDests, 0, dests.length); |
newDests[dests.length] = new MailAliasDestBean(); |
newDests[dests.length].setEnabled(Boolean.TRUE); |
theForm.set("dests", newDests); |
initLists(request, user); |
request.setAttribute("alias", alias); |
request.setAttribute("dests", newDests); |
if(alias.editableBy(user)) |
return mapping.findForward("default"); |
else if(alias.mayChangeDestinations(user)) |
return mapping.findForward("editdests"); |
else |
return mapping.findForward("view"); |
} |
// delete |
else { |
Iterator iter = request.getParameterMap().keySet().iterator(); |
while(iter.hasNext()) { |
String name = (String)iter.next(); |
if(name.startsWith("delete.dests[")) { |
int p = name.indexOf("]"); |
if(p > 0) { |
String index = name.substring("delete.dests[".length(), p); |
try { |
int n = Integer.parseInt(index); |
if(n < 0 || n >= dests.length) break; |
MailAliasDestBean[] newDests; |
newDests = new MailAliasDestBean[dests.length-1]; |
if(n > 0) |
System.arraycopy(dests, 0, newDests, 0, n); |
if(n < dests.length-1) |
System.arraycopy(dests, n+1, newDests, |
n, dests.length-n-1); |
theForm.set("dests", newDests); |
request.setAttribute("dests", newDests); |
break; |
} |
catch(NumberFormatException ex) { |
} |
} |
} |
} |
initLists(request, user); |
request.setAttribute("alias", alias); |
if(alias.editableBy(user)) |
return mapping.findForward("default"); |
else if(alias.mayChangeDestinations(user)) |
return mapping.findForward("editdests"); |
else |
return mapping.findForward("view"); |
} |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
private void initLists(HttpServletRequest request, User user) |
throws Exception |
{ |
// list of mailboxes to redirect to |
List mailboxes = new ArrayList(MailboxManager.getInstance().listMailboxes(user)); |
Collections.sort(mailboxes, MailboxManager.LOGIN_COMPARATOR); |
request.setAttribute("mailboxes", mailboxes); |
List users = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(users, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", users); |
List domains = new ArrayList(InetDomainManager.getInstance().listInetDomains(user)); |
Collections.sort(domains, InetDomainManager.NAME_COMPARATOR); |
request.setAttribute("domains", domains); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/UserAction.java |
---|
0,0 → 1,220 |
package ak.hostadmiral.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import java.util.HashSet; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.util.UserException; |
import ak.hostadmiral.core.CoreResources; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
public final class UserAction |
extends Action |
implements ErrorHandlerX |
{ |
public void handleErrors(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("submit".equals(mapping.getParameter())) { |
User user = (User)request.getSession().getAttribute("user"); |
initUserList(request, user); |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId; |
User u; |
try { |
userId = StringConverter.parseLong(theForm.get("id")); |
} |
catch(NumberFormatException ex) { |
userId = null; |
} |
if(userId == null) |
u = UserManager.getInstance().create(user); |
else |
u = UserManager.getInstance().get(user, userId); |
request.setAttribute("u", u); |
} |
} |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(list, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", list); |
return mapping.findForward("default"); |
} |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "UserEditForm"); |
if(userId == null) { |
u = UserManager.getInstance().create(user); |
showForm.set("enabled", Boolean.TRUE); |
} |
else { |
u = UserManager.getInstance().get(user, userId); |
showForm.set("login", u.getLogin()); |
if(u.getBoss() != null) |
showForm.set("boss", StringConverter.toString(u.getBoss().getId())); |
showForm.set("superuser", u.getSuperuser()); |
showForm.set("locale", u.getLocale().toString()); |
showForm.set("enabled", u.getEnabled()); |
showForm.set("comment", u.getComment()); |
} |
initUserList(request, user); |
request.setAttribute("u", u); |
if(u.editableBy(user)) |
return mapping.findForward("default"); |
else |
return mapping.findForward("view"); |
} |
else if("partedit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u = UserManager.getInstance().get(user, userId); |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "UserPartEditForm"); |
showForm.set("locale", u.getLocale().toString()); |
initUserList(request, user); |
request.setAttribute("u", u); |
return mapping.findForward("default"); |
} |
else if("deleting".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u = UserManager.getInstance().get(user, userId); |
request.setAttribute("action", "/user/delete.do"); |
request.setAttribute("object", u); |
request.setAttribute("cascade", |
UserManager.getInstance().beforeDelete(user, u, new HashSet())); |
return mapping.findForward("default"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u = UserManager.getInstance().get(user, userId); |
request.setAttribute("u", u); |
if(u.equals(user)) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.DELETE_ME_SELF); |
} |
// FIXME: invalidate session of deleted user if it is logged in |
// FIXME: if two admins delete each other at the same time |
UserManager.getInstance().delete(user, u); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u; |
String password = (String)theForm.get("password"); |
if(userId == null) { |
if(password == null || password.equals("")) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.PASSWORD_REQUIRED); |
} |
u = UserManager.getInstance().create(user); |
} |
else { |
u = UserManager.getInstance().get(user, userId); |
} |
request.setAttribute("u", u); |
String login = (String)theForm.get("login"); |
if(UserManager.getInstance().loginExists(user, u, login)) { |
handleErrors(mapping, form, request, response); |
throw new UserException(CoreResources.NONUNIQUE_USER_LOGIN); |
} |
u.setLogin(user, login); |
if(u.editableBy(user)) { |
Long bossId = StringConverter.parseLong(theForm.get("boss")); |
if(bossId == null) |
u.setBoss(user, null); |
else |
u.setBoss(user, UserManager.getInstance().get(user, bossId)); |
u.setLocaleName(user, (String)theForm.get("locale")); |
u.setEnabled(user, (Boolean)theForm.get("enabled")); |
u.setComment(user, (String)theForm.get("comment")); |
} |
if(u.mayChangeSuperuser(user)) |
u.setSuperuser(user, (Boolean)theForm.get("superuser")); |
if(password != null && !password.equals("") |
&& u.editableBy(user) // more strong condition, because normal |
&& u.partEditableBy(user)) // user have to enter first the old password |
{ |
u.setPassword(user, password); |
} |
UserManager.getInstance().save(user, u); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("partsubmit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u = UserManager.getInstance().get(user, userId); |
u.setLocaleName(user, (String)theForm.get("locale")); |
UserManager.getInstance().save(user, u); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
private void initUserList(HttpServletRequest request, User user) |
throws Exception |
{ |
List list = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(list, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", list); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/IndexAction.java |
---|
0,0 → 1,37 |
package ak.hostadmiral.core.action; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.SystemUserManager; |
import ak.hostadmiral.core.model.InetDomainManager; |
import ak.hostadmiral.core.model.MailboxManager; |
import ak.hostadmiral.core.model.MailAliasManager; |
public final class IndexAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
request.setAttribute("showSystemUsers", |
Boolean.valueOf(SystemUserManager.getInstance().areSystemUsersAvailable(user))); |
request.setAttribute("showInetDomains", |
Boolean.valueOf(InetDomainManager.getInstance().areInetDomainsAvailable(user))); |
request.setAttribute("showMailboxes", |
Boolean.valueOf(MailboxManager.getInstance().areMailboxesAvailable(user))); |
request.setAttribute("showMailAliases", |
Boolean.valueOf(MailAliasManager.getInstance().areMailAliasesAvailable(user))); |
return mapping.findForward("success"); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/LoginAction.java |
---|
0,0 → 1,57 |
package ak.hostadmiral.core.action; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.Globals; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.backpath.BackPath; |
import ak.hostadmiral.core.CoreResources; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
public final class LoginAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
DynaActionForm theForm = (DynaActionForm)form; |
User user = UserManager.getInstance().loginUser( |
(String)theForm.get("login"), (String)theForm.get("password"), request.getRemoteAddr()); |
if(user == null) { |
Thread.sleep(1000); // FIXME: make this delay configurable |
ActionErrors errors = new ActionErrors(); |
errors.add(ActionMessages.GLOBAL_MESSAGE, |
new ActionError(CoreResources.LOGIN_FAILED)); |
saveErrors(request, errors); |
return mapping.getInputForward(); |
} |
else { |
request.getSession().setAttribute("user", user); |
request.getSession().setAttribute(Globals.LOCALE_KEY, user.getLocale()); |
String origin = BackPath.findBackPath(request).getBackwardUrl(); |
if(origin == null || origin.length() <= 0) { |
return mapping.findForward("default"); |
} |
else { |
response.sendRedirect(origin); |
return null; |
} |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/UserLoginsAction.java |
---|
0,0 → 1,41 |
package ak.hostadmiral.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
public final class UserLoginsAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u = UserManager.getInstance().get(user, userId); |
List logins = new ArrayList(u.getLogins()); |
Collections.sort(logins, UserManager.LOGINS_TIME_COMPARATOR); |
Collections.reverse(logins); |
request.setAttribute("u", u); |
request.setAttribute("logins", logins); |
return mapping.findForward("default"); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/FailedLoginsAction.java |
---|
0,0 → 1,36 |
package ak.hostadmiral.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
public final class FailedLoginsAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
User user = (User)request.getSession().getAttribute("user"); |
List logins = new ArrayList(UserManager.getInstance().listFailedLogins(user)); |
Collections.sort(logins, UserManager.LOGINS_TIME_COMPARATOR); |
Collections.reverse(logins); |
request.setAttribute("logins", logins); |
return mapping.findForward("default"); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/UserExceptionHandler.java |
---|
0,0 → 1,62 |
package ak.hostadmiral.core.action; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.Globals; |
import org.apache.struts.action.ActionError; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ExceptionHandler; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.config.ExceptionConfig; |
import org.apache.log4j.Logger; |
import ak.strutsx.ErrorHandlerX; |
import ak.hostadmiral.util.UserException; |
import ak.hostadmiral.util.FormException; |
public final class UserExceptionHandler |
extends ExceptionHandler |
{ |
private static final Logger logger = Logger.getLogger(UserExceptionHandler.class); |
public ActionForward execute(Exception ex, ExceptionConfig config, |
ActionMapping mapping, ActionForm formInstance, |
HttpServletRequest request, HttpServletResponse response) |
throws ServletException |
{ |
if(!(ex instanceof UserException)) |
throw new ServletException("Unknown type of exception: " + ex.getClass()); |
UserException userEx = (UserException)ex; |
logger.info("begin exception handle:" + userEx.getMessage()); |
// try to get property for this exception if any |
String property = ActionMessages.GLOBAL_MESSAGE; |
if(userEx instanceof FormException) { |
FormException formEx = (FormException)userEx; |
if(formEx.getProperty() != null) |
property = formEx.getProperty(); |
} |
// create new error message |
ActionErrors errors = (ActionErrors)request.getAttribute(Globals.ERROR_KEY); |
if(errors == null) { |
errors = new ActionErrors(); |
request.setAttribute(Globals.ERROR_KEY, errors); |
} |
errors.add(property, new ActionError(userEx.getMessage(), userEx.getValues())); |
// find forward |
if(mapping.getInput() == null) |
return mapping.findForward("error"); |
else |
return mapping.getInputForward(); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/ChangePasswordAction.java |
---|
0,0 → 1,51 |
package ak.hostadmiral.core.action; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.backpath.BackPath; |
import ak.hostadmiral.core.CoreResources; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
public final class ChangePasswordAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("first".equals(mapping.getParameter())) { |
return mapping.findForward("default"); |
} |
else { |
DynaActionForm theForm = (DynaActionForm)form; |
User user = (User)request.getSession().getAttribute("user"); |
if(user.checkPassword((String)theForm.get("oldpassword"))) { |
user.setPassword(user, (String)theForm.get("password")); |
UserManager.getInstance().save(user, user); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else { |
ActionErrors errors = new ActionErrors(); |
errors.add(ActionMessages.GLOBAL_MESSAGE, |
new ActionError(CoreResources.OLD_PASSWORD_WRONG)); |
saveErrors(request, errors); |
return mapping.getInputForward(); |
} |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/action/LogoutAction.java |
---|
0,0 → 1,27 |
package ak.hostadmiral.core.action; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
public final class LogoutAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if(request.getSession() != null) |
request.getSession().invalidate(); |
return mapping.findForward("default"); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/CoreResources.properties |
---|
0,0 → 1,345 |
ak.hostadmiral.core.type.user=user |
ak.hostadmiral.core.type.systemUser=system user |
ak.hostadmiral.core.type.domain=domain |
ak.hostadmiral.core.type.mailbox=mailbox |
ak.hostadmiral.core.type.mailAlias=mail alias |
ak.hostadmiral.core.type.mailAliasDestination=mail alias destination |
ak.hostadmiral.core.ident.user={0} |
ak.hostadmiral.core.ident.systemUser={0} ({1}) |
ak.hostadmiral.core.ident.domain={0} |
ak.hostadmiral.core.ident.mailbox={0}@{1} |
ak.hostadmiral.core.ident.mailAlias={0}@{1} |
ak.hostadmiral.core.ident.mailAliasDestination.external={0} |
ak.hostadmiral.core.ident.mailAliasDestination.internal={0}@{1} |
ak.hostadmiral.core.access.denied=Access to the object denied |
ak.hostadmiral.core.login.failed=Wrong login or password or the user is disabled |
ak.hostadmiral.core.login.required=You have to enter the login |
ak.hostadmiral.core.password.required=You have to enter the password |
ak.hostadmiral.core.oldpassword.required=You have to enter the old password |
ak.hostadmiral.core.oldpassword.wrong=Wrong old password |
ak.hostadmiral.core.password.dontMatch=The passwords you entered doesn't match |
ak.hostadmiral.core.user.login.nonunique=The user login already exists |
ak.hostadmiral.core.user.id.wrong=Please select an user from the list |
ak.hostadmiral.core.user.deletemeself=Can not delete the user you are logged in |
ak.hostadmiral.core.user.boss.id.wrong=Please select a boss from the list |
ak.hostadmiral.core.user.locale.wrong=Please select a locale from the list |
ak.hostadmiral.core.user.system.uid.nonunique=The UID already exists |
ak.hostadmiral.core.user.system.name.nonunique=The user name already exists |
ak.hostadmiral.core.domain.name.nonunique=The domain name already exists |
ak.hostadmiral.core.mailbox.login.nonunique=The mailbox login already exists in the domain |
ak.hostadmiral.core.mail.alias.address.nonunique=The address already exists in the domain |
ak.hostadmiral.core.mailbox.edit.id.wrong=Please select a mailbox from the list |
ak.hostadmiral.core.mailbox.edit.login.empty=You have to enter the login |
ak.hostadmiral.core.mailbox.edit.domain.wrong=Please select a domain from the list |
ak.hostadmiral.core.mailbox.edit.owner.wrong=Please select an owner from the list |
ak.hostadmiral.core.mailbox.edit.systemuser.wrong=Please select a system user from the list |
ak.hostadmiral.core.mail.alias.edit.id.wrong=Please select a mail alias from the list |
ak.hostadmiral.core.mail.alias.edit.dest.id.wrong=Wrong ID |
ak.hostadmiral.core.mail.alias.edit.mailbox.id.wrong=Please select a mailbox from the list |
ak.hostadmiral.core.mail.alias.edit.email.wrong=Please enter an email |
ak.hostadmiral.core.mail.alias.edit.address.empty=Please enter an address |
ak.hostadmiral.core.mail.alias.edit.domain.wrong=Please select a domain from the list |
ak.hostadmiral.core.mail.alias.edit.owner.wrong=Please select an owner from the list |
ak.hostadmiral.core.user.system.edit.id.wrong=Please select an user from the list |
ak.hostadmiral.core.user.system.edit.uid.wrong=Please enter the UID |
ak.hostadmiral.core.user.system.edit.name.required=Please enter name of the user |
ak.hostadmiral.core.user.system.edit.owner.wrong=Please select an owner from the list |
ak.hostadmiral.core.domain.edit.id.wrong=Please select a domain from the list |
ak.hostadmiral.core.domain.edit.owner.wrong=Please select an owner from the list |
ak.hostadmiral.core.domain.edit.name.empty=Please enter domain name |
ak.hostadmiral.core.mail.alias.edit.id.wrong=Please select an alias from the list |
ak.hostadmiral.page.general.errors=There are errors in you input |
ak.hostadmiral.page.error.title=Host Admiral - error |
ak.hostadmiral.page.error.back=back |
ak.hostadmiral.page.generalError.title=Host Admiral - error |
ak.hostadmiral.page.generalError.message=There is internal server error occured. Please go back and try again. If the error occurs again continue with the start page. |
ak.hostadmiral.page.generalError.index=start page |
ak.hostadmiral.page.generalError.back=back |
ak.hostadmiral.page.index.title=Host Admiral |
ak.hostadmiral.page.index.password_change=change password |
ak.hostadmiral.page.index.user_list=users |
ak.hostadmiral.page.index.system_user_list=system users |
ak.hostadmiral.page.index.domain_list=domains |
ak.hostadmiral.page.index.mail_alias_list=mail aliases |
ak.hostadmiral.page.index.mail_box_list=mail boxes |
ak.hostadmiral.page.index.logout=logout |
ak.hostadmiral.page.index.login=Logged in as |
ak.hostadmiral.page.index.locale=Locale |
ak.hostadmiral.page.system.login.title=Host Admiral - login |
ak.hostadmiral.page.system.login.login=Login |
ak.hostadmiral.page.system.login.password=Password |
ak.hostadmiral.page.system.login.submit=Login |
ak.hostadmiral.page.system.login.reset=Reset |
ak.hostadmiral.page.system.logout.title=Host Admiral - logout |
ak.hostadmiral.page.system.logout.message=You are logged out sucessfully. See you later! |
ak.hostadmiral.page.system.logout.login=start new session |
ak.hostadmiral.page.system.logout.back=return to system |
ak.hostadmiral.page.user.password.change.title=Host Admiral - change password |
ak.hostadmiral.page.user.password.change.old_password=Old password |
ak.hostadmiral.page.user.password.change.new_password=New password |
ak.hostadmiral.page.user.password.change.new_password_again=New password again |
ak.hostadmiral.page.user.password.change.submit=submit |
ak.hostadmiral.page.user.password.change.back=back |
ak.hostadmiral.page.user.list.title=Host Admiral - users - list |
ak.hostadmiral.page.user.list.login=Login |
ak.hostadmiral.page.user.list.boss=Boss |
ak.hostadmiral.page.user.list.superuser=Superuser |
ak.hostadmiral.page.user.list.enabled=Enabled |
ak.hostadmiral.page.user.list.delete=delete |
ak.hostadmiral.page.user.list.edit=edit |
ak.hostadmiral.page.user.list.partedit=edit |
ak.hostadmiral.page.user.list.view=view |
ak.hostadmiral.page.user.list.add=add new user |
ak.hostadmiral.page.user.list.back=back |
ak.hostadmiral.page.user.list.logins.failed=failed logins |
ak.hostadmiral.page.user.failedLogins.title=Host Admiral - users - failed logins |
ak.hostadmiral.page.user.failedLogins.login=Login |
ak.hostadmiral.page.user.failedLogins.user.exists=User Exists |
ak.hostadmiral.page.user.failedLogins.time=Login Time |
ak.hostadmiral.page.user.failedLogins.success=Success |
ak.hostadmiral.page.user.failedLogins.ip=IP |
ak.hostadmiral.page.user.failedLogins.back=back |
ak.hostadmiral.page.user.logins.title=Host Admiral - user - logins |
ak.hostadmiral.page.user.logins.login=Logins of user |
ak.hostadmiral.page.user.logins.time=Login Time |
ak.hostadmiral.page.user.logins.success=Success |
ak.hostadmiral.page.user.logins.ip=IP |
ak.hostadmiral.page.user.logins.back=back |
ak.hostadmiral.page.user.edit.title=Host Admiral - user - edit |
ak.hostadmiral.page.user.edit.login=Login |
ak.hostadmiral.page.user.edit.password=Password |
ak.hostadmiral.page.user.edit.password_again=Password again |
ak.hostadmiral.page.user.edit.boss=Boss |
ak.hostadmiral.page.user.edit.boss.empty=-- no boss -- |
ak.hostadmiral.page.user.edit.superuser=Superuser |
ak.hostadmiral.page.user.edit.superuser.true=yes |
ak.hostadmiral.page.user.edit.superuser.false=no |
ak.hostadmiral.page.user.edit.locale=Locale |
ak.hostadmiral.page.user.edit.enabled=Enabled |
ak.hostadmiral.page.user.edit.comment=Comment |
ak.hostadmiral.page.user.edit.submit=submit |
ak.hostadmiral.page.user.edit.back=back |
ak.hostadmiral.page.user.edit.logins=login history |
ak.hostadmiral.page.user.view.title=Host Admiral - user - view |
ak.hostadmiral.page.user.view.login=Login |
ak.hostadmiral.page.user.view.boss=Boss |
ak.hostadmiral.page.user.view.boss.empty=[no boss] |
ak.hostadmiral.page.user.view.superuser=Superuser |
ak.hostadmiral.page.user.view.superuser.true=yes |
ak.hostadmiral.page.user.view.superuser.false=no |
ak.hostadmiral.page.user.view.locale=Locale |
ak.hostadmiral.page.user.view.enabled=Enabled |
ak.hostadmiral.page.user.view.enabled.true=yes |
ak.hostadmiral.page.user.view.enabled.false=no |
ak.hostadmiral.page.user.view.comment=Comment |
ak.hostadmiral.page.user.view.back=back |
ak.hostadmiral.page.user.view.logins=login history |
ak.hostadmiral.page.user.partedit.title=Host Admiral - user - edit |
ak.hostadmiral.page.user.partedit.login=Login |
ak.hostadmiral.page.user.partedit.boss=Boss |
ak.hostadmiral.page.user.partedit.boss.empty=[no boss] |
ak.hostadmiral.page.user.partedit.superuser=Superuser |
ak.hostadmiral.page.user.partedit.superuser.true=yes |
ak.hostadmiral.page.user.partedit.superuser.false=no |
ak.hostadmiral.page.user.partedit.locale=Locale |
ak.hostadmiral.page.user.partedit.enabled=Enabled |
ak.hostadmiral.page.user.partedit.enabled.true=yes |
ak.hostadmiral.page.user.partedit.enabled.false=no |
ak.hostadmiral.page.user.partedit.comment=Comment |
ak.hostadmiral.page.user.partedit.submit=submit |
ak.hostadmiral.page.user.partedit.back=back |
ak.hostadmiral.page.user.partedit.logins=login history |
ak.hostadmiral.page.user.system.list.title=Host Admiral - system users - list |
ak.hostadmiral.page.user.system.list.uid=System ID |
ak.hostadmiral.page.user.system.list.name=User name |
ak.hostadmiral.page.user.system.list.owner=Owner |
ak.hostadmiral.page.user.system.list.enabled=Enabled |
ak.hostadmiral.page.user.system.list.delete=delete |
ak.hostadmiral.page.user.system.list.edit=edit |
ak.hostadmiral.page.user.system.list.view=view |
ak.hostadmiral.page.user.system.list.add=add new user |
ak.hostadmiral.page.user.system.list.back=back |
ak.hostadmiral.page.user.system.edit.title=Host Admiral - system user - edit |
ak.hostadmiral.page.user.system.edit.uid=System ID |
ak.hostadmiral.page.user.system.edit.name=User name |
ak.hostadmiral.page.user.system.edit.owner=Owner |
ak.hostadmiral.page.user.system.edit.owner.empty=-- common user -- |
ak.hostadmiral.page.user.system.edit.enabled=Enabled |
ak.hostadmiral.page.user.system.edit.comment=Comment |
ak.hostadmiral.page.user.system.edit.submit=submit |
ak.hostadmiral.page.user.system.edit.back=back |
ak.hostadmiral.page.user.system.view.title=Host Admiral - system user - view |
ak.hostadmiral.page.user.system.view.uid=System ID |
ak.hostadmiral.page.user.system.view.name=User name |
ak.hostadmiral.page.user.system.view.owner=Owner |
ak.hostadmiral.page.user.system.view.owner.empty=[common user] |
ak.hostadmiral.page.user.system.view.enabled=Enabled |
ak.hostadmiral.page.user.system.view.enabled.true=yes |
ak.hostadmiral.page.user.system.view.enabled.false=no |
ak.hostadmiral.page.user.system.view.comment=Comment |
ak.hostadmiral.page.user.system.view.back=back |
ak.hostadmiral.page.domain.list.title=Host Admiral - domains - list |
ak.hostadmiral.page.domain.list.name=Name |
ak.hostadmiral.page.domain.list.owner=Owner |
ak.hostadmiral.page.domain.list.enabled=Enabled |
ak.hostadmiral.page.domain.list.delete=delete |
ak.hostadmiral.page.domain.list.view=view |
ak.hostadmiral.page.domain.list.edit=edit |
ak.hostadmiral.page.domain.list.add=add new domain |
ak.hostadmiral.page.domain.list.back=back |
ak.hostadmiral.page.domain.edit.title=Host Admiral - domain - edit |
ak.hostadmiral.page.domain.edit.name=Name |
ak.hostadmiral.page.domain.edit.owner=Owner |
ak.hostadmiral.page.domain.edit.owner.empty=-- please select -- |
ak.hostadmiral.page.domain.edit.enabled=Enabled |
ak.hostadmiral.page.domain.edit.comment=Comment |
ak.hostadmiral.page.domain.edit.submit=submit |
ak.hostadmiral.page.domain.edit.back=back |
ak.hostadmiral.page.domain.view.title=Host Admiral - domain - view |
ak.hostadmiral.page.domain.view.name=Name |
ak.hostadmiral.page.domain.view.owner=Owner |
ak.hostadmiral.page.domain.view.enabled=Enabled |
ak.hostadmiral.page.domain.view.enabled.true=yes |
ak.hostadmiral.page.domain.view.enabled.false=no |
ak.hostadmiral.page.domain.view.comment=Comment |
ak.hostadmiral.page.domain.view.back=back |
ak.hostadmiral.page.mail.box.list.title=Host Admiral - mail boxes - list |
ak.hostadmiral.page.mail.box.list.login=Box |
ak.hostadmiral.page.mail.box.list.domain=Domain |
ak.hostadmiral.page.mail.box.list.owner=Owner |
ak.hostadmiral.page.mail.box.list.enabled=Enabled |
ak.hostadmiral.page.mail.box.list.edit=edit |
ak.hostadmiral.page.mail.box.list.view=view |
ak.hostadmiral.page.mail.box.list.delete=delete |
ak.hostadmiral.page.mail.box.list.add=add new mail box |
ak.hostadmiral.page.mail.box.list.back=back |
ak.hostadmiral.page.mail.box.edit.title=Host Admiral - mail box - edit |
ak.hostadmiral.page.mail.box.edit.login=Box |
ak.hostadmiral.page.mail.box.edit.password=Password |
ak.hostadmiral.page.mail.box.edit.password_again=Password again |
ak.hostadmiral.page.mail.box.edit.domain=Domain |
ak.hostadmiral.page.mail.box.edit.domain.empty=-- please select -- |
ak.hostadmiral.page.mail.box.edit.owner=Owner |
ak.hostadmiral.page.mail.box.edit.owner.empty=-- create an user -- |
ak.hostadmiral.page.mail.box.edit.systemuser=System user |
ak.hostadmiral.page.mail.box.edit.systemuser.empty=-- please select -- |
ak.hostadmiral.page.mail.box.edit.viruscheck=check mails for viruses |
ak.hostadmiral.page.mail.box.edit.spamcheck=check mails for spam |
ak.hostadmiral.page.mail.box.edit.enabled=Enabled |
ak.hostadmiral.page.mail.box.edit.comment=Comment |
ak.hostadmiral.page.mail.box.edit.submit=submit |
ak.hostadmiral.page.mail.box.edit.back=back |
ak.hostadmiral.page.mail.box.view.title=Host Admiral - mail box - view |
ak.hostadmiral.page.mail.box.view.login=Box |
ak.hostadmiral.page.mail.box.view.domain=Domain |
ak.hostadmiral.page.mail.box.view.owner=Owner |
ak.hostadmiral.page.mail.box.view.systemuser=System user |
ak.hostadmiral.page.mail.box.view.systemuser.empty=[default user] |
ak.hostadmiral.page.mail.box.view.viruscheck=check mails for viruses |
ak.hostadmiral.page.mail.box.view.viruscheck.true=yes |
ak.hostadmiral.page.mail.box.view.viruscheck.false=no |
ak.hostadmiral.page.mail.box.view.spamcheck=check mails for spam |
ak.hostadmiral.page.mail.box.view.spamcheck.true=yes |
ak.hostadmiral.page.mail.box.view.spamcheck.false=no |
ak.hostadmiral.page.mail.box.view.enabled=Enabled |
ak.hostadmiral.page.mail.box.view.enabled.true=yes |
ak.hostadmiral.page.mail.box.view.enabled.false=no |
ak.hostadmiral.page.mail.box.view.comment=Comment |
ak.hostadmiral.page.mail.box.view.back=back |
ak.hostadmiral.page.mail.alias.list.title=Host Admiral - mail aliases - list |
ak.hostadmiral.page.mail.alias.list.alias=Alias |
ak.hostadmiral.page.mail.alias.list.domain=Domain |
ak.hostadmiral.page.mail.alias.list.owner=Owner |
ak.hostadmiral.page.mail.alias.list.enabled=Enabled |
ak.hostadmiral.page.mail.alias.list.edit=edit |
ak.hostadmiral.page.mail.alias.list.editdests=edit |
ak.hostadmiral.page.mail.alias.list.view=view |
ak.hostadmiral.page.mail.alias.list.delete=delete |
ak.hostadmiral.page.mail.alias.list.back=back |
ak.hostadmiral.page.mail.alias.list.add=add new mail alias |
ak.hostadmiral.page.mail.alias.edit.title=Host Admiral - mail alias - edit |
ak.hostadmiral.page.mail.alias.edit.address=Address |
ak.hostadmiral.page.mail.alias.edit.domain=Domain |
ak.hostadmiral.page.mail.alias.edit.domain.empty=-- please select -- |
ak.hostadmiral.page.mail.alias.edit.owner=Owner |
ak.hostadmiral.page.mail.alias.edit.owner.empty=-- please select -- |
ak.hostadmiral.page.mail.alias.edit.enabled=Enabled |
ak.hostadmiral.page.mail.alias.edit.comment=Comment |
ak.hostadmiral.page.mail.alias.edit.header.tomailbox=To mailbox |
ak.hostadmiral.page.mail.alias.edit.header.toexternal=or to external email |
ak.hostadmiral.page.mail.alias.edit.header.enabled=Enabled |
ak.hostadmiral.page.mail.alias.edit.header.comment=Comment |
ak.hostadmiral.page.mail.alias.edit.external=external redirect |
ak.hostadmiral.page.mail.alias.edit.add=add new destination |
ak.hostadmiral.page.mail.alias.edit.delete=delete |
ak.hostadmiral.page.mail.alias.edit.submit=submit |
ak.hostadmiral.page.mail.alias.edit.back=back |
ak.hostadmiral.page.mail.alias.editdest.title=Host Admiral - mail alias - edit |
ak.hostadmiral.page.mail.alias.editdest.address=Address |
ak.hostadmiral.page.mail.alias.editdest.domain=Domain |
ak.hostadmiral.page.mail.alias.editdest.owner=Owner |
ak.hostadmiral.page.mail.alias.editdest.enabled=Enabled |
ak.hostadmiral.page.mail.alias.editdest.enabled.true=yes |
ak.hostadmiral.page.mail.alias.editdest.enabled.false=no |
ak.hostadmiral.page.mail.alias.editdest.comment=Comment |
ak.hostadmiral.page.mail.alias.editdest.header.tomailbox=To mailbox |
ak.hostadmiral.page.mail.alias.editdest.header.toexternal=or to external email |
ak.hostadmiral.page.mail.alias.editdest.header.enabled=Enabled |
ak.hostadmiral.page.mail.alias.editdest.header.comment=Comment |
ak.hostadmiral.page.mail.alias.editdest.external=external redirect |
ak.hostadmiral.page.mail.alias.editdest.add=add new destination |
ak.hostadmiral.page.mail.alias.editdest.delete=delete |
ak.hostadmiral.page.mail.alias.editdest.submit=submit |
ak.hostadmiral.page.mail.alias.editdest.back=back |
ak.hostadmiral.page.mail.alias.view.title=Host Admiral - mail alias - view |
ak.hostadmiral.page.mail.alias.view.address=Address |
ak.hostadmiral.page.mail.alias.view.domain=Domain |
ak.hostadmiral.page.mail.alias.view.owner=Owner |
ak.hostadmiral.page.mail.alias.view.enabled=Enabled |
ak.hostadmiral.page.mail.alias.view.enabled.true=yes |
ak.hostadmiral.page.mail.alias.view.enabled.false=no |
ak.hostadmiral.page.mail.alias.view.comment=Comment |
ak.hostadmiral.page.mail.alias.view.header.tomailbox=To mailbox |
ak.hostadmiral.page.mail.alias.view.header.toexternal=or to external email |
ak.hostadmiral.page.mail.alias.view.header.enabled=Enabled |
ak.hostadmiral.page.mail.alias.view.dest.enabled.true=yes |
ak.hostadmiral.page.mail.alias.view.dest.enabled.false=no |
ak.hostadmiral.page.mail.alias.view.header.comment=Comment |
ak.hostadmiral.page.mail.alias.view.external=external redirect |
ak.hostadmiral.page.mail.alias.view.back=back |
org.apache.struts.taglib.bean.format.sql.timestamp=dd-MM-yyyy HH:mm:ss.SSS |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/CoreResources_ru.properties |
---|
0,0 → 1,4 |
 |
ak.hostadmiral.page.index.title=Начальник Камчатки |
org.apache.struts.taglib.bean.format.sql.timestamp=dd MMM yyyy HH:mm:ss.SSS |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/servlet/LoginFilter.java |
---|
0,0 → 1,166 |
package ak.hostadmiral.core.servlet; |
import java.util.List; |
import java.util.ArrayList; |
import java.util.StringTokenizer; |
import java.io.IOException; |
import java.net.URLEncoder; |
import java.security.Principal; |
import java.security.AccessControlException; |
import javax.servlet.Filter; |
import javax.servlet.FilterChain; |
import javax.servlet.FilterConfig; |
import javax.servlet.ServletException; |
import javax.servlet.ServletRequest; |
import javax.servlet.ServletResponse; |
import javax.servlet.http.HttpSession; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.log4j.Logger; |
import ak.backpath.BackPath; |
import ak.hostadmiral.core.model.User; |
/** |
* Ensures that user is logged in to the system to process its request. |
*/ |
public class LoginFilter |
implements Filter |
{ |
private static final Logger logger = Logger.getLogger(LoginFilter.class); |
private FilterConfig filterConfig; |
private String loginUrl; |
private String loginServlet; |
private List passUrls = new ArrayList(); |
private List passMasks = new ArrayList(); |
public void init(FilterConfig filterConfig) |
throws ServletException |
{ |
// get config |
this.filterConfig = filterConfig; |
if(filterConfig == null) |
throw new ServletException("No configuration for the filter"); |
// get login url |
loginUrl = filterConfig.getInitParameter("loginUrl"); |
if(loginUrl == null) |
throw new ServletException("No login URL specified"); |
// ensure it's absolute path |
if(!loginUrl.startsWith("/")) |
loginUrl = "/" + loginUrl; |
// get servlet part ot the url |
int qPos = loginUrl.indexOf("?"); |
if(qPos < 0) |
loginServlet = loginUrl; |
else |
loginServlet = loginUrl.substring(0, qPos); |
// get pass through URLs |
String passUrlsStr = filterConfig.getInitParameter("passUrls"); |
if(passUrlsStr != null) { |
String[] urls = passUrlsStr.split("\\s*;\\s*"); |
for(int i = 0; i < urls.length; i++) { |
if(urls[i].endsWith("*")) { |
passMasks.add(urls[i].substring(0, urls[i].length()-1)); |
} |
else { |
passUrls.add(urls[i]); |
} |
} |
} |
// avoid loop |
if(!isPassThrough(loginServlet)) { |
passUrls.add(loginServlet); |
} |
} |
private boolean isPassThrough(String url) |
{ |
for(int i = 0; i < passUrls.size(); i++) { |
if(url.equals((String)passUrls.get(i))) return true; |
} |
for(int i = 0; i < passMasks.size(); i++) { |
if(url.startsWith((String)passMasks.get(i))) return true; |
} |
return false; |
} |
public void doFilter(ServletRequest request, ServletResponse response, |
FilterChain chain) |
throws IOException, ServletException |
{ |
boolean processNext; |
if(!(request instanceof HttpServletRequest)) |
throw new ServletException("Do not know how to handle non-HTTP requests"); |
if(!(response instanceof HttpServletResponse)) |
throw new ServletException("Do not know how to handle non-HTTP response"); |
HttpServletRequest httpRequest = (HttpServletRequest)request; |
HttpServletResponse httpResponse = (HttpServletResponse)response; |
logger.debug("Requested " + httpRequest.getServletPath()); |
if(isPassThrough(httpRequest.getServletPath())) { |
processNext = true; |
logger.debug("pass through"); |
} |
else { |
try { |
HttpSession session = httpRequest.getSession(false); |
if(session == null) |
throw new AccessControlException("No session"); |
Object userObj = session.getAttribute("user"); |
if(userObj == null) |
throw new AccessControlException("No user"); |
if(!(userObj instanceof User)) |
throw new ServletException( |
"Wrong type of user information: " + userObj.getClass().getName()); |
processNext = true; |
logger.debug("User found - OK"); |
} |
catch(AccessControlException ex) { |
String redirectUrl; |
try { |
redirectUrl = httpRequest.getContextPath() + loginUrl |
+ BackPath.findBackPath(httpRequest).getForwardParams(); |
} |
catch(Exception ex2) { |
logger.error("Cannot get forward redirect", ex2); |
redirectUrl = httpRequest.getContextPath() + loginUrl; |
} |
logger.info("Redirect because of '" + ex.getMessage() + "' to " + redirectUrl); |
httpResponse.sendRedirect(httpResponse.encodeRedirectURL(redirectUrl)); |
processNext = false; |
} |
} |
if(processNext) { // no problems found |
chain.doFilter(request, response); |
} |
} |
public void destroy() |
{ |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/servlet/ProfilerFilter.java |
---|
0,0 → 1,47 |
package ak.hostadmiral.core.servlet; |
import java.io.IOException; |
import java.net.URLEncoder; |
import javax.servlet.Filter; |
import javax.servlet.FilterChain; |
import javax.servlet.FilterConfig; |
import javax.servlet.ServletException; |
import javax.servlet.ServletRequest; |
import javax.servlet.ServletResponse; |
import javax.servlet.http.HttpSession; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.log4j.Logger; |
/** |
* Prints out time of request execution. |
*/ |
public class ProfilerFilter |
implements Filter |
{ |
private static final Logger logger = Logger.getLogger(ProfilerFilter.class); |
public void init(FilterConfig filterConfig) |
throws ServletException |
{ |
} |
public void doFilter(ServletRequest request, ServletResponse response, |
FilterChain chain) |
throws IOException, ServletException |
{ |
logger.debug("begin"); |
long t1 = System.currentTimeMillis(); |
chain.doFilter(request, response); |
long t2 = System.currentTimeMillis(); |
logger.info((t2 - t1) + " ms"); |
} |
public void destroy() |
{ |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/servlet/EncodingFilter.java |
---|
0,0 → 1,37 |
package ak.hostadmiral.core.servlet; |
import java.io.IOException; |
import javax.servlet.Filter; |
import javax.servlet.FilterChain; |
import javax.servlet.FilterConfig; |
import javax.servlet.ServletException; |
import javax.servlet.ServletRequest; |
import javax.servlet.ServletResponse; |
public class EncodingFilter |
implements Filter |
{ |
public static final String ENCODING = "UTF-8"; |
private FilterConfig filterConfig; |
public void init(FilterConfig filterConfig) |
throws ServletException |
{ |
this.filterConfig = filterConfig; |
} |
public void doFilter(ServletRequest request, ServletResponse response, |
FilterChain chain) |
throws IOException, ServletException |
{ |
if(request.getCharacterEncoding() == null) |
request.setCharacterEncoding(ENCODING); |
chain.doFilter(request, response); |
} |
public void destroy() |
{ |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/servlet/HibernateFilter.java |
---|
0,0 → 1,106 |
package ak.hostadmiral.core.servlet; |
import java.util.List; |
import java.util.ArrayList; |
import java.util.StringTokenizer; |
import java.io.IOException; |
import java.net.URLEncoder; |
import java.security.Principal; |
import java.security.AccessControlException; |
import javax.servlet.Filter; |
import javax.servlet.FilterChain; |
import javax.servlet.FilterConfig; |
import javax.servlet.ServletException; |
import javax.servlet.ServletRequest; |
import javax.servlet.ServletResponse; |
import javax.servlet.http.HttpSession; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.log4j.Logger; |
import net.sf.hibernate.HibernateException; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
public class HibernateFilter |
implements Filter |
{ |
private static final Logger logger = Logger.getLogger(HibernateFilter.class); |
private FilterConfig filterConfig; |
public void init(FilterConfig filterConfig) |
throws ServletException |
{ |
// get config |
this.filterConfig = filterConfig; |
if(filterConfig != null) { |
// register hibernate classes |
String toRegister = filterConfig.getInitParameter("register"); |
if(toRegister != null) { |
String[] registers = toRegister.split("\\s*;\\s*"); |
for(int i = 0; i < registers.length; i++) { |
try { |
String name = registers[i].trim(); |
if(name.equals("")) continue; |
Class cl = Class.forName(name); |
} |
catch(Exception ex) { |
logger.error("cannot register class", ex); |
} |
} |
} |
} |
} |
public void doFilter(ServletRequest request, ServletResponse response, |
FilterChain chain) |
throws IOException, ServletException |
{ |
try { |
logger.info("begin transaction"); |
HibernateUtil.beginTransaction(); |
chain.doFilter(request, response); |
if(HibernateUtil.isTransactionOpen()) { |
logger.info("commit transaction"); |
HibernateUtil.commitTransaction(); |
} |
} |
catch(Exception ex) { |
logger.error("exception by program execution", ex); |
try { |
if(HibernateUtil.isTransactionOpen()) { |
logger.info("rollback transaction"); |
HibernateUtil.rollbackTransaction(); |
} |
} |
catch(Exception ex2) { |
logger.error("cannot rollback transaction", ex2); |
} |
if(ex instanceof ServletException) |
throw (ServletException)ex; |
else |
throw new ServletException("Internal server error"); |
} |
try { |
HibernateUtil.closeSession(); |
} |
catch(Exception ex) { |
logger.error("cannot close session", ex); |
} |
} |
public void destroy() |
{ |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserManager.java |
---|
0,0 → 1,371 |
package ak.hostadmiral.core.model; |
import java.util.*; |
import net.sf.hibernate.*; |
import net.sf.hibernate.type.Type; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
public class UserManager |
implements UserBeforeDeleteListener |
{ |
private static UserManager userManager = null; |
private static boolean registered = false; |
public static UserManager getInstance() |
{ |
return userManager; |
} |
protected static void register() |
{ |
synchronized(MailboxManager.class) { |
if(registered) return; |
registered = true; |
try { |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/User.hbm.xml"); |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/UserLogin.hbm.xml"); |
userManager = new UserManager(); |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
throw new RuntimeException(ex.getMessage()); |
} |
} |
} |
static { |
register(); |
} |
private Collection beforeDeleteListeners = new ArrayList(); |
private Map loggedinUsers = new WeakHashMap(); |
private UserManager() |
{ |
addBeforeDeleteListener(this); |
} |
public User create(User editor) |
throws ModelException |
{ |
if(!allowedToCreate(editor)) throw new ModelSecurityException(); |
return new User(); |
} |
public boolean allowedToCreate(User editor) |
throws ModelException |
{ |
return User.allowedToCreate(this, editor); |
} |
public User get(User editor, Long id) |
throws ModelException |
{ |
User user; |
try { |
user = (User)HibernateUtil.currentSession().load(User.class, id); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(!user.viewableBy(editor)) |
throw new ModelSecurityException(); |
return user; |
} |
public boolean loginExists(User editor, User user, String login) |
throws ModelException |
{ |
try { |
if(user.getId() == null) |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from User u where login = ?", |
login, Hibernate.STRING) |
.next()).intValue() > 0; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from User u where login = ? and u != ?", |
new Object[] { login, user }, |
new Type[] { Hibernate.STRING, Hibernate.entity(User.class) } ) |
.next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public User findForLogin(String login) |
throws ModelException |
{ |
try { |
List list = HibernateUtil.currentSession().find( |
"from User where login = ? and enabled = ?", |
new Object[] { login, Boolean.TRUE }, |
new Type[] { Hibernate.STRING, Hibernate.BOOLEAN } ); |
if(list.size() == 0) |
return null; |
else |
return (User)list.get(0); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void save(User editor, User user) |
throws ModelException |
{ |
if(!user.editableBy(editor) && !user.partEditableBy(editor) |
&& !user.mayChangeSuperuser(editor)) |
{ |
throw new ModelSecurityException(); |
} |
user.setModUser(editor); |
try { |
HibernateUtil.currentSession().saveOrUpdate(user); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
// update user if he is logged in |
for(Iterator i = loggedinUsers.keySet().iterator(); i.hasNext(); ) { |
User u = (User)i.next(); |
if(u.equals(user)) |
u.update(user); |
} |
} |
public void addBeforeDeleteListener(UserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
} |
public void removeBeforeDeleteListener(UserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, User user, Collection known) |
throws ModelException |
{ |
Collection cascade = new ArrayList(); |
for(Iterator i = beforeDeleteListeners.iterator(); i.hasNext(); ) { |
UserBeforeDeleteListener listener = (UserBeforeDeleteListener)i.next(); |
Collection subcascade = listener.userBeforeDelete(editor, user, known); |
if(subcascade != null) |
cascade.addAll(subcascade); |
} |
return cascade; |
} |
public void delete(User editor, User user) |
throws ModelException |
{ |
if(!user.deleteableBy(editor)) |
throw new ModelSecurityException(); |
try { |
HibernateUtil.currentSession().delete(user); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection listUsers(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) { |
return HibernateUtil.currentSession().find("from User"); |
} |
else { |
return HibernateUtil.currentSession().find( |
"from User u where u = ? or u.boss = ?", |
new Object[] { editor, editor}, |
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) } ); |
} |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public boolean areUsersAvailable(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) { |
return true; |
} |
else { |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from User u where u = ? or u.boss = ?", |
new Object[] { editor, editor}, |
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) } ) |
.next()).intValue() > 0; |
} |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public User loginUser(String login, String password, String ip) |
throws ModelException |
{ |
User user = (login == null || password == null) ? null : findForLogin(login); |
boolean success = (user == null) ? false : user.checkPassword(password); |
UserLogin userLogin = new UserLogin(user, login, new Date(), Boolean.valueOf(success), ip); |
// save login information |
try { |
HibernateUtil.currentSession().saveOrUpdate(userLogin); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(success) { |
loggedinUsers.put(user, Boolean.TRUE); |
return user; |
} |
else { |
return null; // wrong login or password |
} |
} |
public Collection listFailedLogins(User editor) |
throws ModelException |
{ |
if(!editor.mayViewAllLogins()) |
{ |
throw new ModelSecurityException(); |
} |
try { |
return HibernateUtil.currentSession().find( |
"from UserLogin where success = ?", |
Boolean.FALSE, Hibernate.BOOLEAN); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection userBeforeDelete(User editor, User user, Collection known) |
throws ModelException |
{ |
Collection subusers; |
try { |
subusers = HibernateUtil.currentSession().find( |
"from User where boss = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
Collection cascade = new ArrayList(); |
for(Iterator i = subusers.iterator(); i.hasNext(); ) { |
User u = (User)i.next(); |
if(u.viewableBy(editor)) { |
if(u.deleteableBy(editor)) |
cascade.add(new CascadeDeleteElement(u, CascadeDeleteElement.DELETE, |
this.beforeDelete(editor, u, known))); |
else |
cascade.add(new CascadeDeleteElement(u, CascadeDeleteElement.FORBIDDEN, null)); |
} |
else { |
cascade.add(new CascadeDeleteElement(User.createLimitedCopy(u), |
CascadeDeleteElement.FORBIDDEN, null)); |
} |
} |
return cascade; |
} |
public static final Comparator LOGIN_COMPARATOR = new LoginComparator(); |
public static final Comparator LOGINS_TIME_COMPARATOR = new LoginsTimeComparator(); |
private static class LoginComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof User) || !(o2 instanceof User)) |
throw new ClassCastException("not a User"); |
User a1 = (User)o1; |
User a2 = (User)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getLogin().compareToIgnoreCase(a2.getLogin()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof LoginComparator); |
} |
} |
private static class LoginsTimeComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof UserLogin) || !(o2 instanceof UserLogin)) |
throw new ClassCastException("not a UserLogin"); |
UserLogin a1 = (UserLogin)o1; |
UserLogin a2 = (UserLogin)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getLoginTime().compareTo(a2.getLoginTime()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof LoginComparator); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainManager.java |
---|
0,0 → 1,278 |
package ak.hostadmiral.core.model; |
import java.util.*; |
import net.sf.hibernate.*; |
import net.sf.hibernate.type.Type; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
public class InetDomainManager |
implements UserBeforeDeleteListener |
{ |
private static InetDomainManager inetDomainManager = null; |
private static boolean registered = false; |
public static InetDomainManager getInstance() |
{ |
return inetDomainManager; |
} |
protected static void register() |
{ |
synchronized(InetDomainManager.class) { |
if(registered) return; |
registered = true; |
try { |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/InetDomain.hbm.xml"); |
inetDomainManager = new InetDomainManager(); |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
throw new RuntimeException(ex.getMessage()); |
} |
} |
} |
static { |
register(); |
} |
private Collection beforeDeleteListeners = new ArrayList(); |
private InetDomainManager() |
{ |
UserManager.getInstance().addBeforeDeleteListener(this); |
} |
public InetDomain create(User editor) |
throws ModelException |
{ |
if(!allowedToCreate(editor)) throw new ModelSecurityException(); |
return new InetDomain(); |
} |
public boolean allowedToCreate(User editor) |
throws ModelException |
{ |
return InetDomain.allowedToCreate(this, editor); |
} |
public InetDomain get(User editor, Long id) |
throws ModelException |
{ |
InetDomain domain; |
try { |
domain = (InetDomain)HibernateUtil.currentSession().load( |
InetDomain.class, id); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(!domain.viewableBy(editor)) |
throw new ModelSecurityException(); |
return domain; |
} |
public boolean nameExists(User editor, InetDomain domain, String name) |
throws ModelException |
{ |
try { |
if(domain.getId() == null) |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from InetDomain d where name = ?", |
name, Hibernate.STRING) |
.next()).intValue() > 0; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from InetDomain d where name = ? and d != ?", |
new Object[] { name, domain }, |
new Type[] { Hibernate.STRING, Hibernate.entity(InetDomain.class) } ) |
.next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
protected InetDomain findForName(String name) |
throws ModelException |
{ |
try { |
List list = HibernateUtil.currentSession().find( |
"from InetDomain where name=?", name, Hibernate.STRING); |
if(list.size() == 0) |
return null; |
else |
return (InetDomain)list.get(0); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void save(User editor, InetDomain domain) |
throws ModelException |
{ |
if(!domain.editableBy(editor)) |
throw new ModelSecurityException(); |
domain.setModUser(editor); |
try { |
HibernateUtil.currentSession().saveOrUpdate(domain); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void addBeforeDeleteListener(SystemUserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
} |
public void removeBeforeDeleteListener(SystemUserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, InetDomain domain, Collection known) |
throws ModelException |
{ |
Collection cascade = new ArrayList(); |
for(Iterator i = beforeDeleteListeners.iterator(); i.hasNext(); ) { |
InetDomainBeforeDeleteListener listener = (InetDomainBeforeDeleteListener)i.next(); |
Collection subcascade = listener.inetDomainBeforeDelete(editor, domain, known); |
if(subcascade != null) |
cascade.addAll(subcascade); |
} |
return cascade; |
} |
public void delete(User editor, InetDomain domain) |
throws ModelException |
{ |
if(!domain.deleteableBy(editor)) |
throw new ModelSecurityException(); |
try { |
HibernateUtil.currentSession().delete(domain); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection listInetDomains(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) |
return HibernateUtil.currentSession().find("from InetDomain"); |
else |
return HibernateUtil.currentSession().find( |
"from InetDomain where owner=?", editor, Hibernate.entity(User.class)); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public boolean areInetDomainsAvailable(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) |
return true; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from InetDomain where owner=?", |
editor, Hibernate.entity(User.class)).next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection userBeforeDelete(User editor, User user, Collection known) |
throws ModelException |
{ |
Collection domains; |
try { |
domains = HibernateUtil.currentSession().find( |
"from InetDomain where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
Collection cascade = new ArrayList(); |
for(Iterator i = domains.iterator(); i.hasNext(); ) { |
InetDomain d = (InetDomain)i.next(); |
if(d.viewableBy(editor)) { |
if(d.deleteableBy(editor)) |
cascade.add(new CascadeDeleteElement(d, CascadeDeleteElement.DELETE, |
this.beforeDelete(editor, d, known))); |
else |
cascade.add(new CascadeDeleteElement(d, CascadeDeleteElement.FORBIDDEN, null)); |
} |
else { |
cascade.add(new CascadeDeleteElement(InetDomain.createLimitedCopy(d), |
CascadeDeleteElement.FORBIDDEN, null)); |
} |
} |
return cascade; |
} |
public static final Comparator NAME_COMPARATOR = new NameComparator(); |
private static class NameComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof InetDomain) || !(o2 instanceof InetDomain)) |
throw new ClassCastException("not a InetDomain"); |
InetDomain a1 = (InetDomain)o1; |
InetDomain a2 = (InetDomain)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getName().compareToIgnoreCase(a2.getName()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof NameComparator); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxManager.java |
---|
0,0 → 1,339 |
package ak.hostadmiral.core.model; |
import java.util.*; |
import net.sf.hibernate.*; |
import net.sf.hibernate.type.Type; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
public class MailboxManager |
implements |
UserBeforeDeleteListener, |
SystemUserBeforeDeleteListener, |
InetDomainBeforeDeleteListener |
{ |
private static MailboxManager mailboxManager = null; |
private static boolean registered = false; |
public static MailboxManager getInstance() |
{ |
return mailboxManager; |
} |
protected static void register() |
{ |
synchronized(MailboxManager.class) { |
if(registered) return; |
registered = true; |
try { |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/Mailbox.hbm.xml"); |
mailboxManager = new MailboxManager(); |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
throw new RuntimeException(ex.getMessage()); |
} |
} |
} |
static { |
register(); |
} |
private Collection beforeDeleteListeners = new ArrayList(); |
private MailboxManager() |
{ |
UserManager.getInstance().addBeforeDeleteListener(this); |
SystemUserManager.getInstance().addBeforeDeleteListener(this); |
InetDomainManager.getInstance().addBeforeDeleteListener(this); |
} |
public Mailbox create(User editor) |
throws ModelException |
{ |
if(!allowedToCreate(editor)) throw new ModelSecurityException(); |
return new Mailbox(); |
} |
public boolean allowedToCreate(User editor) |
throws ModelException |
{ |
return Mailbox.allowedToCreate(this, editor); |
} |
public Mailbox get(User editor, Long id) |
throws ModelException |
{ |
Mailbox mailbox; |
try { |
mailbox = (Mailbox)HibernateUtil.currentSession().load(Mailbox.class, id); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(!mailbox.viewableBy(editor)) |
throw new ModelSecurityException(); |
return mailbox; |
} |
public boolean loginExists(User editor, Mailbox mailbox, String login) |
throws ModelException |
{ |
if(mailbox.getDomain() == null) |
throw new ModelException("Cannot check unique login for mailbox without domain"); |
try { |
if(mailbox.getId() == null) |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from Mailbox where login = ? and domain = ?", |
new Object[] { login, mailbox.getDomain() }, |
new Type[] { Hibernate.STRING, Hibernate.entity(InetDomain.class) } ) |
.next()).intValue() > 0; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from Mailbox b where login = ? and domain = ? and b != ?", |
new Object[] { login, mailbox.getDomain(), mailbox }, |
new Type[] { Hibernate.STRING, Hibernate.entity(InetDomain.class), |
Hibernate.entity(Mailbox.class) } ) |
.next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
protected Mailbox findForLogin(String login) |
throws ModelException |
{ |
try { |
List list = HibernateUtil.currentSession().find( |
"from Mailbox where login=?", login, Hibernate.STRING); |
if(list.size() == 0) |
return null; |
else |
return (Mailbox)list.get(0); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void save(User editor, Mailbox mailbox) |
throws ModelException |
{ |
if(!mailbox.editableBy(editor)) |
throw new ModelSecurityException(); |
mailbox.setModUser(editor); |
try { |
HibernateUtil.currentSession().saveOrUpdate(mailbox); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void addBeforeDeleteListener(MailboxBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
} |
public void removeBeforeDeleteListener(MailboxBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, Mailbox mailbox, Collection known) |
throws ModelException |
{ |
Collection cascade = new ArrayList(); |
for(Iterator i = beforeDeleteListeners.iterator(); i.hasNext(); ) { |
MailboxBeforeDeleteListener listener = (MailboxBeforeDeleteListener)i.next(); |
Collection subcascade = listener.mailboxBeforeDelete(editor, mailbox, known); |
if(subcascade != null) |
cascade.addAll(subcascade); |
} |
return cascade; |
} |
public void delete(User editor, Mailbox mailbox) |
throws ModelException |
{ |
if(!mailbox.deleteableBy(editor)) |
throw new ModelSecurityException(); |
try { |
HibernateUtil.currentSession().delete(mailbox); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection listMailboxes(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) |
return HibernateUtil.currentSession().find("from Mailbox"); |
else |
return HibernateUtil.currentSession().find( |
"select mb from Mailbox mb left join mb.domain as d" |
+ " where d.owner=? or mb.owner=?", |
new Object[] { editor, editor }, |
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) } ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public boolean areMailboxesAvailable(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser() |
|| InetDomainManager.getInstance().areInetDomainsAvailable(editor)) |
{ |
return true; |
} |
else { |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from Mailbox mb left join mb.domain as d" |
+ " where d.owner=? or mb.owner=?", |
new Object[] { editor, editor }, |
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) }) |
.next()).intValue() > 0; |
} |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection userBeforeDelete(User editor, User user, Collection known) |
throws ModelException |
{ |
Collection mailboxes; |
try { |
mailboxes = HibernateUtil.currentSession().find( |
"from Mailbox where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
return iterateBeforeDelete(editor, mailboxes, known); |
} |
public Collection inetDomainBeforeDelete(User editor, InetDomain domain, Collection known) |
throws ModelException |
{ |
Collection mailboxes; |
try { |
mailboxes = HibernateUtil.currentSession().find( |
"from Mailbox where domain = ?", |
domain, Hibernate.entity(InetDomain.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
return iterateBeforeDelete(editor, mailboxes, known); |
} |
public Collection systemUserBeforeDelete(User editor, SystemUser user, Collection known) |
throws ModelException |
{ |
Collection mailboxes; |
try { |
mailboxes = HibernateUtil.currentSession().find( |
"from Mailbox where systemUser = ?", |
user, Hibernate.entity(SystemUser.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
return iterateBeforeDelete(editor, mailboxes, known); |
} |
private Collection iterateBeforeDelete(User editor, Collection mailboxes, Collection known) |
throws ModelException |
{ |
Collection cascade = new ArrayList(); |
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) { |
Mailbox mailbox = (Mailbox)i.next(); |
if(mailbox.viewableBy(editor)) { |
if(mailbox.deleteableBy(editor)) |
cascade.add(new CascadeDeleteElement(mailbox, CascadeDeleteElement.DELETE, |
this.beforeDelete(editor, mailbox, known))); |
else |
cascade.add(new CascadeDeleteElement(mailbox, CascadeDeleteElement.FORBIDDEN, |
null)); |
} |
else { |
cascade.add(new CascadeDeleteElement(Mailbox.createLimitedCopy(mailbox), |
CascadeDeleteElement.FORBIDDEN, null)); |
} |
} |
return cascade; |
} |
public static final Comparator LOGIN_COMPARATOR = new LoginComparator(); |
private static class LoginComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof Mailbox) || !(o2 instanceof Mailbox)) |
throw new ClassCastException("not a Mailbox"); |
Mailbox a1 = (Mailbox)o1; |
Mailbox a2 = (Mailbox)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getLogin().compareToIgnoreCase(a2.getLogin()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof LoginComparator); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasManager.java |
---|
0,0 → 1,231 |
package ak.hostadmiral.core.model; |
import java.util.*; |
import net.sf.hibernate.*; |
import net.sf.hibernate.type.Type; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
public class MailAliasManager |
{ |
private static boolean registered = false; |
protected static void register() |
{ |
synchronized(MailAliasManager.class) { |
if(registered) return; |
registered = true; |
try { |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/MailAlias.hbm.xml"); |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
throw new RuntimeException(ex.getMessage()); |
} |
} |
} |
static { |
register(); |
} |
private MailAliasManager() |
{ |
} |
public MailAlias create(User editor) |
throws ModelException |
{ |
if(!allowedToCreate(editor)) throw new ModelSecurityException(); |
MailAlias alias = new MailAlias(); |
alias.setDestinations(new ArrayList()); |
return alias; |
} |
public boolean allowedToCreate(User editor) |
throws ModelException |
{ |
return MailAlias.allowedToCreate(this, editor); |
} |
public MailAlias get(User editor, Long id) |
throws ModelException |
{ |
MailAlias alias; |
try { |
alias = (MailAlias)HibernateUtil.currentSession().load(MailAlias.class, id); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(!alias.viewableBy(editor)) |
throw new ModelSecurityException(); |
return alias; |
} |
public boolean addressExists(User editor, MailAlias alias, String address) |
throws ModelException |
{ |
if(alias.getDomain() == null) |
throw new ModelException("Cannot check unique address for mail alias without domain"); |
try { |
if(alias.getId() == null) |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from MailAlias where address = ? and domain = ?", |
new Object[] { address, alias.getDomain() }, |
new Type[] { Hibernate.STRING, Hibernate.entity(InetDomain.class) } ) |
.next()).intValue() > 0; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from MailAlias a where address = ? and domain = ? and a != ?", |
new Object[] { address, alias.getDomain(), alias }, |
new Type[] { Hibernate.STRING, Hibernate.entity(InetDomain.class), |
Hibernate.entity(MailAlias.class) } ) |
.next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
protected MailAlias findForName(String name) |
throws ModelException |
{ |
try { |
List list = HibernateUtil.currentSession().find( |
"from MailAlias where name=?", name, Hibernate.STRING); |
if(list.size() == 0) |
return null; |
else |
return (MailAlias)list.get(0); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void save(User editor, MailAlias mailAlias) |
throws ModelException |
{ |
if(!mailAlias.editableBy(editor)) |
throw new ModelSecurityException(); |
mailAlias.setModUser(editor); |
try { |
HibernateUtil.currentSession().saveOrUpdate(mailAlias); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void delete(User editor, MailAlias mailAlias) |
throws ModelException |
{ |
if(!mailAlias.deleteableBy(editor)) |
throw new ModelSecurityException(); |
try { |
HibernateUtil.currentSession().delete(mailAlias); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection listMailAliases(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) |
return HibernateUtil.currentSession().find("from MailAlias"); |
else |
return HibernateUtil.currentSession().find( |
"select a from MailAlias a left join a.domain as d" |
+ " where d.owner=? or a.owner=?", |
new Object[] { editor, editor }, |
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) } ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public boolean areMailAliasesAvailable(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser() |
|| InetDomainManager.getInstance().areInetDomainsAvailable(editor)) |
{ |
return true; |
} |
else { |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from MailAlias a left join a.domain as d" |
+ " where d.owner=? or a.owner=?", |
new Object[] { editor, editor }, |
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) }) |
.next()).intValue() > 0; |
} |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
private static MailAliasManager mailAliasManager = null; |
public static MailAliasManager getInstance() |
{ |
if(mailAliasManager == null) |
mailAliasManager = new MailAliasManager(); |
return mailAliasManager; |
} |
public static final Comparator ADDRESS_COMPARATOR = new AddressComparator(); |
private static class AddressComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof MailAlias) || !(o2 instanceof MailAlias)) |
throw new ClassCastException("not a MailAlias"); |
MailAlias a1 = (MailAlias)o1; |
MailAlias a2 = (MailAlias)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getAddress().compareToIgnoreCase(a2.getAddress()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof AddressComparator); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasDestinationManager.java |
---|
0,0 → 1,162 |
package ak.hostadmiral.core.model; |
import java.util.*; |
import net.sf.hibernate.*; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
public class MailAliasDestinationManager |
{ |
private static boolean registered = false; |
protected static void register() |
{ |
synchronized(MailAliasDestinationManager.class) { |
if(registered) return; |
registered = true; |
try { |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/MailAliasDestination.hbm.xml"); |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
throw new RuntimeException(ex.getMessage()); |
} |
} |
} |
static { |
register(); |
} |
private MailAliasDestinationManager() |
{ |
} |
public MailAliasDestination create(User editor) |
throws ModelException |
{ |
if(!allowedToCreate(editor)) throw new ModelSecurityException(); |
return new MailAliasDestination(); |
} |
public boolean allowedToCreate(User editor) |
throws ModelException |
{ |
return MailAliasDestination.allowedToCreate(this, editor); |
} |
public MailAliasDestination get(User editor, Long id) |
throws ModelException |
{ |
MailAliasDestination dest; |
try { |
dest = (MailAliasDestination)HibernateUtil.currentSession() |
.load(MailAliasDestination.class, id); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(!dest.viewableBy(editor)) |
throw new ModelSecurityException(); |
return dest; |
} |
public void save(User editor, MailAliasDestination mailAliasDestination) |
throws ModelException |
{ |
if(!mailAliasDestination.editableBy(editor)) |
throw new ModelSecurityException(); |
mailAliasDestination.setModUser(editor); |
// FIXME: the mod_user is not set when changing a destination as element of collection |
try { |
HibernateUtil.currentSession().saveOrUpdate(mailAliasDestination); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void delete(User editor, MailAliasDestination mailAliasDestination) |
throws ModelException |
{ |
if(!mailAliasDestination.deleteableBy(editor)) |
throw new ModelSecurityException(); |
try { |
HibernateUtil.currentSession().delete(mailAliasDestination); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection listMailAliasesDestination(MailAlias alias) |
throws ModelException |
{ |
try { |
return HibernateUtil.currentSession().find( |
"from MailAliasDestination where alias=?", |
alias, Hibernate.entity(MailAlias.class)); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public boolean areMailAliasesDestinationsAvailable(User editor) |
throws ModelException |
{ |
return true; |
} |
private static MailAliasDestinationManager mailAliasDestinationManager = null; |
public static MailAliasDestinationManager getInstance() |
{ |
if(mailAliasDestinationManager == null) |
mailAliasDestinationManager = new MailAliasDestinationManager(); |
return mailAliasDestinationManager; |
} |
public static final Comparator EMAIL_COMPARATOR = new EmailComparator(); |
private static class EmailComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof MailAliasDestination) || !(o2 instanceof MailAliasDestination)) |
throw new ClassCastException("not a MailAliasDestination"); |
MailAliasDestination a1 = (MailAliasDestination)o1; |
MailAliasDestination a2 = (MailAliasDestination)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getEmail().compareToIgnoreCase(a2.getEmail()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof EmailComparator); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserManager.java |
---|
0,0 → 1,347 |
package ak.hostadmiral.core.model; |
import java.util.*; |
import net.sf.hibernate.*; |
import net.sf.hibernate.type.Type; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
public class SystemUserManager |
implements UserBeforeDeleteListener |
{ |
private static SystemUserManager systemUserManager = null; |
private static boolean registered = false; |
public static SystemUserManager getInstance() |
{ |
return systemUserManager; |
} |
protected static void register() |
{ |
synchronized(SystemUserManager.class) { |
if(registered) return; |
registered = true; |
try { |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/SystemUser.hbm.xml"); |
systemUserManager = new SystemUserManager(); |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
throw new RuntimeException(ex.getMessage()); |
} |
} |
} |
static { |
register(); |
} |
private Collection beforeDeleteListeners = new ArrayList(); |
private SystemUserManager() |
{ |
UserManager.getInstance().addBeforeDeleteListener(this); |
} |
public SystemUser create(User editor) |
throws ModelException |
{ |
if(!allowedToCreate(editor)) throw new ModelSecurityException(); |
return new SystemUser(); |
} |
public boolean allowedToCreate(User editor) |
throws ModelException |
{ |
return SystemUser.allowedToCreate(this, editor); |
} |
public SystemUser get(User editor, Long id) |
throws ModelException |
{ |
SystemUser user; |
try { |
user = (SystemUser)HibernateUtil.currentSession().load(SystemUser.class, id); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(!user.viewableBy(editor)) |
throw new ModelSecurityException(); |
return user; |
} |
public boolean nameExists(User editor, SystemUser user, String name) |
throws ModelException |
{ |
try { |
if(user.getId() == null) |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from SystemUser u where name = ?", |
name, Hibernate.STRING) |
.next()).intValue() > 0; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from SystemUser u where name = ? and u != ?", |
new Object[] { name, user }, |
new Type[] { Hibernate.STRING, Hibernate.entity(SystemUser.class) } ) |
.next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public boolean uidExists(User editor, SystemUser user, Integer uid) |
throws ModelException |
{ |
try { |
if(user.getId() == null) |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from SystemUser u where uid = ?", |
uid, Hibernate.INTEGER) |
.next()).intValue() > 0; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from SystemUser u where uid = ? and u != ?", |
new Object[] { uid, user }, |
new Type[] { Hibernate.INTEGER, Hibernate.entity(SystemUser.class) } ) |
.next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
protected SystemUser findForName(String name) |
throws ModelException |
{ |
try { |
List list = HibernateUtil.currentSession().find( |
"from SystemUser where name=?", name, Hibernate.STRING); |
if(list.size() == 0) |
return null; |
else |
return (SystemUser)list.get(0); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
protected SystemUser findForUid(Integer uid) |
throws ModelException |
{ |
try { |
List list = HibernateUtil.currentSession().find( |
"from SystemUser where uid=?", uid, Hibernate.INTEGER); |
if(list.size() == 0) |
return null; |
else |
return (SystemUser)list.get(0); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void save(User editor, SystemUser systemUser) |
throws ModelException |
{ |
if(!systemUser.editableBy(editor)) |
throw new ModelSecurityException(); |
systemUser.setModUser(editor); |
try { |
HibernateUtil.currentSession().saveOrUpdate(systemUser); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public void addBeforeDeleteListener(SystemUserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
} |
public void removeBeforeDeleteListener(SystemUserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, SystemUser user, Collection known) |
throws ModelException |
{ |
Collection cascade = new ArrayList(); |
for(Iterator i = beforeDeleteListeners.iterator(); i.hasNext(); ) { |
SystemUserBeforeDeleteListener listener = (SystemUserBeforeDeleteListener)i.next(); |
Collection subcascade = listener.systemUserBeforeDelete(editor, user, known); |
if(subcascade != null) |
cascade.addAll(subcascade); |
} |
return cascade; |
} |
public void delete(User editor, SystemUser systemUser) |
throws ModelException |
{ |
if(!systemUser.deleteableBy(editor)) |
throw new ModelSecurityException(); |
try { |
HibernateUtil.currentSession().delete(systemUser); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection listSystemUsers(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) { |
return HibernateUtil.currentSession().find("from SystemUser"); |
} |
else { |
return HibernateUtil.currentSession().find( |
"select u from SystemUser u left join u.owner o where o is null or o=?", |
editor, Hibernate.entity(User.class)); |
} |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public boolean areSystemUsersAvailable(User editor) |
throws ModelException |
{ |
try { |
if(editor.isSuperuser()) |
return true; |
else |
return ((Integer)HibernateUtil.currentSession().iterate( |
"select count(*) from SystemUser u left join u.owner o where o is null or o=?", |
editor, Hibernate.entity(User.class)).next()).intValue() > 0; |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public Collection userBeforeDelete(User editor, User user, Collection known) |
throws ModelException |
{ |
Collection systemUsers; |
try { |
systemUsers = HibernateUtil.currentSession().find( |
"from SystemUser where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
Collection cascade = new ArrayList(); |
for(Iterator i = systemUsers.iterator(); i.hasNext(); ) { |
SystemUser u = (SystemUser)i.next(); |
if(u.viewableBy(editor)) { |
if(u.deleteableBy(editor)) |
cascade.add(new CascadeDeleteElement(u, CascadeDeleteElement.DELETE, |
this.beforeDelete(editor, u, known))); |
else |
cascade.add(new CascadeDeleteElement(u, CascadeDeleteElement.FORBIDDEN, null)); |
} |
else { |
cascade.add(new CascadeDeleteElement(SystemUser.createLimitedCopy(u), |
CascadeDeleteElement.FORBIDDEN, null)); |
} |
} |
return cascade; |
} |
public static final Comparator UID_COMPARATOR = new UidComparator(); |
public static final Comparator NAME_COMPARATOR = new NameComparator(); |
private static class UidComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof SystemUser) || !(o2 instanceof SystemUser)) |
throw new ClassCastException("not a SystemUser"); |
SystemUser a1 = (SystemUser)o1; |
SystemUser a2 = (SystemUser)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getUid().compareTo(a2.getUid()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof UidComparator); |
} |
} |
private static class NameComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof SystemUser) || !(o2 instanceof SystemUser)) |
throw new ClassCastException("not a SystemUser"); |
SystemUser a1 = (SystemUser)o1; |
SystemUser a2 = (SystemUser)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getName().compareToIgnoreCase(a2.getName()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof NameComparator); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/User.java |
---|
0,0 → 1,297 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import java.util.Collections; |
import java.util.Locale; |
import java.util.StringTokenizer; |
import ak.hostadmiral.util.Digest; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
/** |
* |
* @hibernate.class table="users" |
*/ |
public class User |
extends GeneralModelObject |
{ |
private String login; |
private String password; |
private User boss; |
private Boolean superuser; |
private Locale locale = Locale.getDefault(); |
private Collection loginHistory; |
protected User() |
{ |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getLogin() |
{ |
return login; |
} |
protected void setLogin(String login) |
{ |
this.login = login; |
} |
public void setLogin(User editor, String login) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.login = login; |
} |
/** |
* |
* @hibernate.property |
*/ |
protected String getPassword() |
{ |
return password; |
} |
protected void setPassword(String password) |
{ |
this.password = password; |
} |
public void setPassword(User editor, String password) |
throws ModelException |
{ |
if(!partEditableBy(editor)) |
throw new ModelSecurityException(); |
if(password == null) |
throw new NullPointerException("Null password"); |
this.password = Digest.encode(password); |
} |
public boolean checkPassword(String password) |
{ |
if(password == null) |
throw new NullPointerException("Null password"); |
return checkMd5Password(Digest.encode(password)); |
} |
public boolean checkMd5Password(String password) |
{ |
return this.password.equals(password); |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public User getBoss() |
{ |
return boss; |
} |
protected void setBoss(User boss) |
{ |
this.boss = boss; |
} |
public void setBoss(User editor, User boss) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.boss = boss; |
} |
/** |
* |
* @hibernate.property |
*/ |
public Boolean getSuperuser() |
{ |
return superuser; |
} |
public boolean isSuperuser() |
{ |
return (superuser != null) && superuser.booleanValue(); |
} |
protected void setSuperuser(Boolean superuser) |
{ |
this.superuser = superuser; |
} |
public void setSuperuser(User editor, Boolean superuser) |
throws ModelException |
{ |
if(!mayChangeSuperuser(editor)) |
throw new ModelSecurityException(); |
this.superuser = superuser; |
} |
/** |
* |
* @hibernate.property column="locale" |
*/ |
protected String getLocaleName() |
{ |
return locale.toString(); |
} |
protected void setLocaleName(String localeName) |
{ |
String language = null; |
String country = null; |
if(localeName != null) { |
StringTokenizer t = new StringTokenizer(localeName, "_"); |
if(t.hasMoreTokens()) language = t.nextToken(); |
if(t.hasMoreTokens()) country = t.nextToken(); |
} |
if(language == null) |
this.locale = Locale.getDefault(); |
else if(country == null) |
this.locale = new Locale(language); |
else |
this.locale = new Locale(language, country); |
} |
public void setLocaleName(User editor, String localeName) |
throws ModelException |
{ |
if(!partEditableBy(editor)) |
throw new ModelSecurityException(); |
setLocaleName(localeName); |
} |
public Locale getLocale() |
{ |
return locale; |
} |
public void setLocale(User editor, Locale locale) |
throws ModelException |
{ |
if(!partEditableBy(editor)) |
throw new ModelSecurityException(); |
this.locale = locale; |
} |
/** |
* |
* @hibernate.set lazy="true" |
* @hibernate.collection-key column="usr" |
* @hibernate.collection-one-to-many class="ak.hostadmiral.core.model.UserLogin" |
*/ |
protected Collection getLoginHistory() |
{ |
return loginHistory; |
} |
public Collection getLogins() |
{ |
return Collections.unmodifiableCollection(loginHistory); |
} |
protected void setLoginHistory(Collection loginHistory) |
{ |
this.loginHistory = loginHistory; |
} |
public boolean equals(Object o) |
{ |
if(o == null || !(o instanceof User)) return false; |
User u = (User)o; |
return (getId() != null) && (u.getId() != null) && (getId().equals(u.getId())); |
} |
protected void update(User origin) |
{ |
this.login = origin.login; |
this.boss = origin.boss; |
this.superuser = origin.superuser; |
this.locale = origin.locale; |
} |
public int hashCode() |
{ |
if(getId() == null) |
return 0; |
else |
return getId().hashCode(); |
} |
public String getTypeKey() |
{ |
return ak.hostadmiral.core.CoreResources.TYPE_USER; |
} |
public String getIdentKey() |
{ |
return ak.hostadmiral.core.CoreResources.IDENT_USER; |
} |
public Object[] getIdentParams() |
{ |
return new Object[] { getLogin() }; |
} |
public boolean viewableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss) || user.equals(this); |
} |
public boolean editableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss); |
} |
public boolean deleteableBy(User user) |
{ |
return !user.equals(this) && (user.isSuperuser() || user.equals(boss)); |
} |
// editor is allowed to change some additional properties |
public boolean partEditableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss) || user.equals(this); |
} |
public boolean mayChangeSuperuser(User user) |
{ |
return user.isSuperuser() && !user.equals(this); |
} |
public boolean mayViewAllLogins() |
{ |
return isSuperuser(); |
} |
protected static boolean allowedToCreate(UserManager manager, User editor) |
throws ModelException |
{ |
return editor.isSuperuser(); |
} |
protected static User createLimitedCopy(User origin) |
{ |
User u = new User(); |
u.setLogin(origin.getLogin()); |
return u; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUser.java |
---|
0,0 → 1,134 |
package ak.hostadmiral.core.model; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
/** |
* |
* @hibernate.class table="systemusers" |
*/ |
public class SystemUser |
extends GeneralModelObject |
{ |
/** user id in the OS */ |
private Integer uid; |
private String name; |
private User owner; |
protected SystemUser() |
{ |
} |
/** |
* |
* @hibernate.property |
*/ |
public Integer getUid() |
{ |
return uid; |
} |
protected void setUid(Integer uid) |
{ |
this.uid = uid; |
} |
public void setUid(User editor, Integer uid) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.uid = uid; |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getName() |
{ |
return name; |
} |
protected void setName(String name) |
{ |
this.name = name; |
} |
public void setName(User editor, String name) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.name = name; |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public User getOwner() |
{ |
return owner; |
} |
protected void setOwner(User owner) |
{ |
this.owner = owner; |
} |
public void setOwner(User editor, User owner) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.owner = owner; |
} |
public String getTypeKey() |
{ |
return ak.hostadmiral.core.CoreResources.TYPE_SYSTEM_USER; |
} |
public String getIdentKey() |
{ |
return ak.hostadmiral.core.CoreResources.IDENT_SYSTEM_USER; |
} |
public Object[] getIdentParams() |
{ |
return new Object[] { getName(), getUid() }; |
} |
public boolean viewableBy(User user) |
{ |
return user.isSuperuser() || (owner == null) || user.equals(owner); |
} |
public boolean editableBy(User user) |
{ |
return user.isSuperuser(); |
} |
public boolean deleteableBy(User user) |
{ |
return user.isSuperuser(); |
} |
protected static boolean allowedToCreate(SystemUserManager manager, User editor) |
throws ModelException |
{ |
return editor.isSuperuser(); |
} |
protected static SystemUser createLimitedCopy(SystemUser origin) |
{ |
SystemUser u = new SystemUser(); |
u.setUid(origin.getUid()); |
u.setName(origin.getName()); |
return u; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/ModelObject.java |
---|
0,0 → 1,18 |
package ak.hostadmiral.core.model; |
public interface ModelObject |
{ |
public Long getId(); |
public String getTypeKey(); |
public String getIdentKey(); |
public Object[] getIdentParams(); |
public boolean viewableBy(User user); |
public boolean editableBy(User user); |
public boolean deleteableBy(User user); |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserBeforeDeleteListener.java |
---|
0,0 → 1,20 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface UserBeforeDeleteListener |
{ |
/** |
* called if some user is about to be deleted. |
* |
* @param editor who is doing the operation |
* @param user the user to delete |
* @param known Collection(Object) - already known objects which are touched by current operation, |
* to avoid loops |
* @return Collection(CascadeDeleteElement) - object which are touched by deleting the user |
* FIXME: limit deep of load? |
*/ |
public Collection userBeforeDelete(User editor, User user, Collection known) |
throws ModelException; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/Mailbox.java |
---|
0,0 → 1,231 |
package ak.hostadmiral.core.model; |
import ak.hostadmiral.util.Digest; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
/** |
* |
* @hibernate.class table="mailboxes" |
*/ |
public class Mailbox |
extends GeneralModelObject |
{ |
private String login; |
private String password; |
private InetDomain domain; |
private User owner; |
private Boolean virusCheck; |
private Boolean spamCheck; |
private SystemUser systemUser; |
protected Mailbox() |
{ |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getLogin() |
{ |
return login; |
} |
protected void setLogin(String login) |
{ |
this.login = login; |
} |
public void setLogin(User editor, String login) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.login = login; |
} |
/** |
* |
* @hibernate.property |
*/ |
protected String getPassword() |
{ |
return password; |
} |
protected void setPassword(String password) |
{ |
this.password = password; |
} |
public void setPassword(User editor, String password) |
throws ModelException |
{ |
if(password == null) |
throw new NullPointerException("Null password"); |
this.password = Digest.encode(password); |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public InetDomain getDomain() |
{ |
return domain; |
} |
protected void setDomain(InetDomain domain) |
{ |
this.domain = domain; |
} |
public void setDomain(User editor, InetDomain domain) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.domain = domain; |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public User getOwner() |
{ |
return owner; |
} |
protected void setOwner(User owner) |
{ |
this.owner = owner; |
} |
public void setOwner(User editor, User owner) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.owner = owner; |
} |
/** |
* |
* @hibernate.property |
*/ |
public Boolean getVirusCheck() |
{ |
return virusCheck; |
} |
protected void setVirusCheck(Boolean virusCheck) |
{ |
this.virusCheck = virusCheck; |
} |
public void setVirusCheck(User editor, Boolean virusCheck) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.virusCheck = virusCheck; |
} |
/** |
* |
* @hibernate.property |
*/ |
public Boolean getSpamCheck() |
{ |
return spamCheck; |
} |
protected void setSpamCheck(Boolean spamCheck) |
{ |
this.spamCheck = spamCheck; |
} |
public void setSpamCheck(User editor, Boolean spamCheck) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.spamCheck = spamCheck; |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public SystemUser getSystemUser() |
{ |
return systemUser; |
} |
protected void setSystemUser(SystemUser systemUser) |
{ |
this.systemUser = systemUser; |
} |
public void setSystemUser(User editor, SystemUser systemUser) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.systemUser = systemUser; |
} |
public String getTypeKey() |
{ |
return ak.hostadmiral.core.CoreResources.TYPE_MAILBOX; |
} |
public String getIdentKey() |
{ |
return ak.hostadmiral.core.CoreResources.IDENT_MAILBOX; |
} |
public Object[] getIdentParams() |
{ |
return new Object[] { getLogin(), getDomain().getName() }; |
} |
public boolean viewableBy(User user) |
{ |
return user.isSuperuser() || user.equals(domain.getOwner()) || user.equals(owner); |
} |
public boolean editableBy(User user) |
{ |
return user.isSuperuser() || user.equals(domain.getOwner()); |
} |
public boolean deleteableBy(User user) |
{ |
return user.isSuperuser() || user.equals(domain.getOwner()); |
} |
protected static boolean allowedToCreate(MailboxManager manager, User editor) |
throws ModelException |
{ |
return editor.isSuperuser() |
|| InetDomainManager.getInstance().areInetDomainsAvailable(editor); |
} |
protected static Mailbox createLimitedCopy(Mailbox origin) |
{ |
Mailbox u = new Mailbox(); |
u.setLogin(origin.getLogin()); |
u.setDomain(origin.getDomain()); |
return u; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserBeforeDeleteListener.java |
---|
0,0 → 1,20 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface SystemUserBeforeDeleteListener |
{ |
/** |
* called if some system user is about to be deleted. |
* |
* @param editor who is doing the operation |
* @param user the user to delete |
* @param known Collection(Object) - already known objects which are touched by current operation, |
* to avoid loops |
* @return Collection(CascadeDeleteElement) - object which are touched by deleting the user |
* FIXME: limit deep of load? |
*/ |
public Collection systemUserBeforeDelete(User editor, SystemUser user, Collection known) |
throws ModelException; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainBeforeDeleteListener.java |
---|
0,0 → 1,20 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface InetDomainBeforeDeleteListener |
{ |
/** |
* called if some domain is about to be deleted. |
* |
* @param editor who is doing the operation |
* @param domain the domain to delete |
* @param known Collection(Object) - already known objects which are touched by current operation, |
* to avoid loops |
* @return Collection(CascadeDeleteElement) - object which are touched by deleting the domain |
* FIXME: limit deep of load? |
*/ |
public Collection inetDomainBeforeDelete(User editor, InetDomain domain, Collection known) |
throws ModelException; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserLogin.java |
---|
0,0 → 1,114 |
package ak.hostadmiral.core.model; |
import java.util.Date; |
/** |
* |
* @hibernate.class table="userlogins" |
*/ |
public class UserLogin |
{ |
private Long id; |
private User user; |
private String login; |
private Date loginTime; |
private Boolean success; |
private String ip; |
protected UserLogin() |
{ |
} |
protected UserLogin(User user, String login, Date loginTime, Boolean success, String ip) |
{ |
this.user = user; |
this.login = login; |
this.loginTime = loginTime; |
this.success = success; |
this.ip = ip; |
} |
/** |
* |
* @hibernate.id generator-class="native" |
*/ |
public Long getId() |
{ |
return id; |
} |
protected void setId(Long id) |
{ |
this.id = id; |
} |
/** |
* |
* @hibernate.many-to-one column="usr" |
*/ |
public User getUser() |
{ |
return user; |
} |
protected void setUser(User user) |
{ |
this.user = user; |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getLogin() |
{ |
return login; |
} |
protected void setLogin(String login) |
{ |
this.login = login; |
} |
/** |
* |
* @hibernate.property |
*/ |
public Date getLoginTime() |
{ |
return loginTime; |
} |
protected void setLoginTime(Date loginTime) |
{ |
this.loginTime = loginTime; |
} |
/** |
* |
* @hibernate.property |
*/ |
public Boolean getSuccess() |
{ |
return success; |
} |
protected void setSuccess(Boolean success) |
{ |
this.success = success; |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getIp() |
{ |
return ip; |
} |
protected void setIp(String ip) |
{ |
this.ip = ip; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxBeforeDeleteListener.java |
---|
0,0 → 1,20 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface MailboxBeforeDeleteListener |
{ |
/** |
* called if some mailbox is about to be deleted. |
* |
* @param editor who is doing the operation |
* @param mailbox the mailbox to delete |
* @param known Collection(Object) - already known objects which are touched by current operation, |
* to avoid loops |
* @return Collection(CascadeDeleteElement) - object which are touched by deleting the mailbox |
* FIXME: limit deep of load? |
*/ |
public Collection mailboxBeforeDelete(User editor, Mailbox mailbox, Collection known) |
throws ModelException; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasBeforeDeleteListener.java |
---|
0,0 → 1,21 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface MailAliasBeforeDeleteListener |
{ |
/** |
* called if some mail alias is about to be deleted. |
* |
* @param editor who is doing the operation |
* @param alias the mail alias to delete |
* @param known Collection(Object) - already known objects which are touched by current operation, |
* to avoid loops |
* @return Collection(CascadeDeleteElement) |
* - object which are touched by deleting the mail alias |
* FIXME: limit deep of load? |
*/ |
public Collection mailAliasBeforeDelete(User editor, MailAlias mailAlias, Collection known) |
throws ModelException; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/CascadeDeleteElement.java |
---|
0,0 → 1,55 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
public class CascadeDeleteElement |
{ |
public static final int FORBIDDEN = 1; |
public static final int DELETE = 2; |
public static final int CHANGE = 3; |
private ModelObject object; |
private int effect; |
private Collection cascade; // Collection(CascadeDeleteElement) |
public CascadeDeleteElement() |
{ |
} |
public CascadeDeleteElement(ModelObject object, int effect, Collection cascade) |
{ |
this.object = object; |
this.effect = effect; |
this.cascade = cascade; |
} |
public ModelObject getObject() |
{ |
return object; |
} |
public void setObject(ModelObject object) |
{ |
this.object = object; |
} |
public int getEffect() |
{ |
return effect; |
} |
public void setEffect(int effect) |
{ |
this.effect = effect; |
} |
public Collection getCascade() |
{ |
return cascade; |
} |
public void setCascade(Collection cascade) |
{ |
this.cascade = cascade; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomain.java |
---|
0,0 → 1,108 |
package ak.hostadmiral.core.model; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
/** |
* |
* @hibernate.class table="domains" |
*/ |
public class InetDomain |
extends GeneralModelObject |
{ |
private String name; |
private User owner; |
protected InetDomain() |
{ |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getName() |
{ |
return name; |
} |
protected void setName(String name) |
{ |
this.name = name; |
} |
public void setName(User editor, String name) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.name = name; |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public User getOwner() |
{ |
return owner; |
} |
protected void setOwner(User owner) |
{ |
this.owner = owner; |
} |
public void setOwner(User editor, User owner) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.owner = owner; |
} |
public String getTypeKey() |
{ |
return ak.hostadmiral.core.CoreResources.TYPE_DOMAIN; |
} |
public String getIdentKey() |
{ |
return ak.hostadmiral.core.CoreResources.IDENT_DOMAIN; |
} |
public Object[] getIdentParams() |
{ |
return new Object[] { getName() }; |
} |
public boolean viewableBy(User user) |
{ |
return user.isSuperuser() || user.equals(owner); |
} |
public boolean editableBy(User user) |
{ |
return user.isSuperuser(); |
} |
public boolean deleteableBy(User user) |
{ |
return user.isSuperuser(); |
} |
protected static boolean allowedToCreate(InetDomainManager manager, User editor) |
throws ModelException |
{ |
return editor.isSuperuser(); |
} |
protected static InetDomain createLimitedCopy(InetDomain origin) |
{ |
InetDomain d = new InetDomain(); |
d.setName(origin.getName()); |
return d; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasDestination.java |
---|
0,0 → 1,132 |
package ak.hostadmiral.core.model; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
/** |
* |
* @hibernate.class table="mailaliasdests" |
*/ |
public class MailAliasDestination |
extends GeneralModelObject |
{ |
private MailAlias alias; |
private Mailbox mailbox; |
private String email; |
protected MailAliasDestination() |
{ |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public MailAlias getAlias() |
{ |
return alias; |
} |
protected void setAlias(MailAlias alias) |
{ |
this.alias = alias; |
} |
public void setAlias(User editor, MailAlias alias) |
throws ModelException |
{ |
if(this.alias != null && !editableBy(editor)) |
throw new ModelSecurityException(); |
this.alias = alias; |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public Mailbox getMailbox() |
{ |
return mailbox; |
} |
protected void setMailbox(Mailbox mailbox) |
{ |
this.mailbox = mailbox; |
} |
public void setMailbox(User editor, Mailbox mailbox) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.mailbox = mailbox; |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getEmail() |
{ |
return email; |
} |
protected void setEmail(String email) |
{ |
this.email = email; |
} |
public void setEmail(User editor, String email) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.email = email; |
} |
public String getTypeKey() |
{ |
return ak.hostadmiral.core.CoreResources.TYPE_MAIL_ALIAS_DESTINATION; |
} |
public String getIdentKey() |
{ |
if(getMailbox() == null) |
return ak.hostadmiral.core.CoreResources.IDENT_MAIL_ALIAS_DESTINATION_EXTERNAL; |
else |
return ak.hostadmiral.core.CoreResources.IDENT_MAIL_ALIAS_DESTINATION_INTERNAL; |
} |
public Object[] getIdentParams() |
{ |
if(getMailbox() == null) |
return new Object[] { getEmail() }; |
else |
return new Object[] { getMailbox().getLogin(), getMailbox().getDomain().getName() }; |
} |
public boolean viewableBy(User user) |
{ |
return alias.viewableBy(user); |
} |
public boolean editableBy(User user) |
{ |
return alias.mayChangeDestinations(user); |
} |
public boolean deleteableBy(User user) |
{ |
return alias.mayChangeDestinations(user); |
} |
protected static boolean allowedToCreate(MailAliasDestinationManager manager, User editor) |
throws ModelException |
{ |
return true; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/GeneralModelObject.java |
---|
0,0 → 1,103 |
package ak.hostadmiral.core.model; |
import java.util.Date; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
public abstract class GeneralModelObject |
implements ModelObject |
{ |
private Long id; |
private Boolean enabled; |
private String comment; |
private Date modStamp; |
private User modUser; |
/** |
* |
* @hibernate.id generator-class="native" |
*/ |
public Long getId() |
{ |
return id; |
} |
protected void setId(Long id) |
{ |
this.id = id; |
} |
/** |
* |
* @hibernate.property |
*/ |
public Boolean getEnabled() |
{ |
return enabled; |
} |
protected void setEnabled(Boolean enabled) |
{ |
this.enabled = enabled; |
} |
public void setEnabled(User editor, Boolean enabled) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.enabled = enabled; |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getComment() |
{ |
return comment; |
} |
protected void setComment(String comment) |
{ |
this.comment = comment; |
} |
public void setComment(User editor, String comment) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.comment = comment; |
} |
/** |
* |
* @hibernate.timestamp column="mod_stamp" |
*/ |
public Date getModStamp() |
{ |
return modStamp; |
} |
protected void setModStamp(Date modStamp) |
{ |
this.modStamp = modStamp; |
} |
/** |
* |
* @hibernate.many-to-one column="mod_user" |
*/ |
public User getModUser() |
{ |
return modUser; |
} |
protected void setModUser(User modUser) |
{ |
this.modUser = modUser; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAlias.java |
---|
0,0 → 1,167 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
/** |
* |
* @hibernate.class table="mailaliases" |
*/ |
public class MailAlias |
extends GeneralModelObject |
{ |
private String address; |
private InetDomain domain; |
private User owner; |
private Collection destinations; // Collection(MailAliasDestintion) |
protected MailAlias() |
{ |
} |
/** |
* |
* @hibernate.property |
*/ |
public String getAddress() |
{ |
return address; |
} |
protected void setAddress(String address) |
{ |
this.address = address; |
} |
public void setAddress(User editor, String address) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.address = address; |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public InetDomain getDomain() |
{ |
return domain; |
} |
protected void setDomain(InetDomain domain) |
{ |
this.domain = domain; |
} |
public void setDomain(User editor, InetDomain domain) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.domain = domain; |
} |
/** |
* |
* @hibernate.many-to-one |
*/ |
public User getOwner() |
{ |
return owner; |
} |
protected void setOwner(User owner) |
{ |
this.owner = owner; |
} |
public void setOwner(User editor, User owner) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
this.owner = owner; |
} |
/** |
* @return Collection(MailAliasDestination) |
* |
* @hibernate.bag inverse="true" cascade="all-delete-orphan" |
* @hibernate.collection-key column="alias" |
* @hibernate.collection-one-to-many class="ak.hostadmiral.core.model.MailAliasDestination" |
*/ |
protected Collection getDestinations() |
{ |
return destinations; |
} |
/** |
* @return Collection(MailAliasDestination) |
*/ |
public Collection getDestinations(User editor) |
throws ModelException |
{ |
if(mayChangeDestinations(editor)) |
return destinations; |
else if(viewableBy(editor)) |
return java.util.Collections.unmodifiableCollection(destinations); |
else |
throw new ModelSecurityException(); |
} |
/** |
* @param destinations Collection(MailAliasDestination) |
*/ |
protected void setDestinations(Collection destinations) |
{ |
this.destinations = destinations; |
} |
public String getTypeKey() |
{ |
return ak.hostadmiral.core.CoreResources.TYPE_MAIL_ALIAS; |
} |
public String getIdentKey() |
{ |
return ak.hostadmiral.core.CoreResources.IDENT_MAIL_ALIAS; |
} |
public Object[] getIdentParams() |
{ |
return new Object[] { getAddress(), getDomain().getName() }; |
} |
public boolean viewableBy(User user) |
{ |
return user.isSuperuser() || user.equals(domain.getOwner()) || user.equals(owner); |
} |
public boolean editableBy(User user) |
{ |
return user.isSuperuser() || user.equals(domain.getOwner()); |
} |
public boolean mayChangeDestinations(User user) |
{ |
return user.isSuperuser() || user.equals(domain.getOwner()) || user.equals(owner); |
} |
public boolean deleteableBy(User user) |
{ |
return user.isSuperuser() || user.equals(domain.getOwner()); |
} |
protected static boolean allowedToCreate(MailAliasManager manager, User editor) |
throws ModelException |
{ |
return editor.isSuperuser() |
|| InetDomainManager.getInstance().areInetDomainsAvailable(editor); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/LocaleOptionsTag.java |
---|
0,0 → 1,49 |
// based on jakarta struts taglib |
package ak.hostadmiral.core.taglib; |
import java.util.Locale; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.taglib.html.Constants; |
import org.apache.struts.taglib.html.SelectTag; |
import org.apache.struts.taglib.html.OptionsTag; |
import org.apache.struts.util.MessageResources; |
import org.apache.struts.util.ResponseUtils; |
import ak.hostadmiral.core.Locales; |
import ak.hostadmiral.core.model.User; |
public class LocaleOptionsTag extends OptionsTag |
{ |
protected static MessageResources coreMessages = |
MessageResources.getMessageResources("ak.hostadmiral.core.CoreResources"); |
public int doEndTag() throws JspException |
{ |
SelectTag selectTag = (SelectTag) pageContext.getAttribute(Constants.SELECT_KEY); |
if (selectTag == null) { |
throw new JspException(messages.getMessage("optionsTag.select")); |
} |
User user = (User)pageContext.getSession().getAttribute("user"); |
if(user == null) throw new JspException("no user found"); |
Locale userLocale = user.getLocale(); |
StringBuffer sb = new StringBuffer(); |
Locale[] locales = Locales.getLocales(); |
for(int i = 0; i < locales.length; i++) { |
Locale locale = locales[i]; |
String stringValue = locale.toString(); |
String label = locale.getDisplayLanguage(userLocale); |
String country = locale.getDisplayCountry(userLocale); |
if(country != null && !country.equals("")) |
label += " / " + country; // FIXME: move the slash to JSP? |
addOption(sb, stringValue, label, selectTag.isMatched(stringValue)); |
} |
ResponseUtils.write(pageContext, sb.toString()); |
return EVAL_PAGE; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/CountryTag.java |
---|
0,0 → 1,29 |
package ak.hostadmiral.core.taglib; |
import java.io.IOException; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import ak.hostadmiral.core.model.User; |
public class CountryTag |
extends TagSupport |
{ |
public int doStartTag() |
throws JspException |
{ |
User user = (User)pageContext.getSession().getAttribute("user"); |
if(user == null) |
throw new JspException("no user found"); |
try { |
pageContext.getOut().print(user.getLocale().getDisplayCountry(user.getLocale())); |
} |
catch(IOException ex) { |
throw new JspException("Cannot write out: " + ex.getMessage()); |
} |
return SKIP_BODY; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/LanguageTag.java |
---|
0,0 → 1,29 |
package ak.hostadmiral.core.taglib; |
import java.io.IOException; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import ak.hostadmiral.core.model.User; |
public class LanguageTag |
extends TagSupport |
{ |
public int doStartTag() |
throws JspException |
{ |
User user = (User)pageContext.getSession().getAttribute("user"); |
if(user == null) |
throw new JspException("no user found"); |
try { |
pageContext.getOut().print(user.getLocale().getDisplayLanguage(user.getLocale())); |
} |
catch(IOException ex) { |
throw new JspException("Cannot write out: " + ex.getMessage()); |
} |
return SKIP_BODY; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/ViewableTag.java |
---|
0,0 → 1,13 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
public class ViewableTag |
extends RightTagBase |
{ |
protected boolean condition() |
throws JspException |
{ |
return object.viewableBy(user); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NotViewableTag.java |
---|
0,0 → 1,13 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
public class NotViewableTag |
extends RightTagBase |
{ |
protected boolean condition() |
throws JspException |
{ |
return !object.viewableBy(user); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/RightsTag.java |
---|
0,0 → 1,15 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.util.RequestUtils; |
public class RightsTag |
extends MethodTagBase |
{ |
protected boolean condition(boolean value) |
throws JspException |
{ |
return value; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/ModelObjectOptionsTag.java |
---|
0,0 → 1,71 |
// based on jakarta struts taglib |
package ak.hostadmiral.core.taglib; |
import java.lang.reflect.InvocationTargetException; |
import java.util.Iterator; |
import javax.servlet.jsp.JspException; |
import org.apache.commons.beanutils.PropertyUtils; |
import org.apache.struts.taglib.html.Constants; |
import org.apache.struts.taglib.html.SelectTag; |
import org.apache.struts.taglib.html.OptionsTag; |
import org.apache.struts.util.MessageResources; |
import org.apache.struts.util.ResponseUtils; |
import ak.hostadmiral.core.model.ModelObject; |
public class ModelObjectOptionsTag extends OptionsTag |
{ |
protected static MessageResources coreMessages = |
MessageResources.getMessageResources("ak.hostadmiral.core.CoreResources"); |
public int doEndTag() throws JspException |
{ |
SelectTag selectTag = (SelectTag) pageContext.getAttribute(Constants.SELECT_KEY); |
if (selectTag == null) { |
throw new JspException(messages.getMessage("optionsTag.select")); |
} |
StringBuffer sb = new StringBuffer(); |
if (collection != null) { |
Iterator collIterator = getIterator(collection, null); |
while (collIterator.hasNext()) { |
Object bean = collIterator.next(); |
Object value = null; |
if(!(bean instanceof ModelObject)) |
throw new JspException("Not a ModelObject"); |
ModelObject model = (ModelObject)bean; |
try { |
value = PropertyUtils.getProperty(bean, property); |
if (value == null) { |
value = ""; |
} |
} catch (IllegalAccessException e) { |
throw new JspException( |
messages.getMessage("getter.access", property, collection)); |
} catch (InvocationTargetException e) { |
Throwable t = e.getTargetException(); |
throw new JspException( |
messages.getMessage("getter.result", property, t.toString())); |
} catch (NoSuchMethodException e) { |
throw new JspException( |
messages.getMessage("getter.method", property, collection)); |
} |
String identKey = model.getIdentKey(); |
Object[] identParams = model.getIdentParams(); |
String label = coreMessages.getMessage(identKey, identParams); |
String stringValue = value.toString(); |
addOption(sb, stringValue, label, selectTag.isMatched(stringValue)); |
} |
} |
ResponseUtils.write(pageContext, sb.toString()); |
return EVAL_PAGE; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/DeleteableTag.java |
---|
0,0 → 1,13 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
public class DeleteableTag |
extends RightTagBase |
{ |
protected boolean condition() |
throws JspException |
{ |
return object.deleteableBy(user); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NotDeleteableTag.java |
---|
0,0 → 1,13 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
public class NotDeleteableTag |
extends RightTagBase |
{ |
protected boolean condition() |
throws JspException |
{ |
return !object.deleteableBy(user); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/RightTagBase.java |
---|
0,0 → 1,64 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import org.apache.struts.util.RequestUtils; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.ModelObject; |
public abstract class RightTagBase |
extends TagSupport |
{ |
protected User user; |
protected ModelObject object; |
protected String name; |
public String getName() |
{ |
return name; |
} |
public void setName(String name) |
{ |
this.name = name; |
} |
public void release() |
{ |
super.release(); |
name = null; |
user = null; |
} |
public int doStartTag() |
throws JspException |
{ |
user = (User)RequestUtils.lookup(pageContext, "user", "session"); |
Object obj = RequestUtils.lookup(pageContext, name, null); |
if(obj == null) |
throw new JspException(name + " is null"); |
if(!(obj instanceof ModelObject)) |
throw new JspException(name + " must be a ModelObject, but is " + obj.getClass()); |
object = (ModelObject)obj; |
if(condition()) |
return EVAL_BODY_INCLUDE; |
else |
return SKIP_BODY; |
} |
public int doEndTag() |
throws JspException |
{ |
return EVAL_PAGE; |
} |
protected abstract boolean condition() |
throws JspException; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/EditableTag.java |
---|
0,0 → 1,13 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
public class EditableTag |
extends RightTagBase |
{ |
protected boolean condition() |
throws JspException |
{ |
return object.editableBy(user); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NotEditableTag.java |
---|
0,0 → 1,13 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
public class NotEditableTag |
extends RightTagBase |
{ |
protected boolean condition() |
throws JspException |
{ |
return !object.editableBy(user); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/WriteTag.java |
---|
0,0 → 1,50 |
// based on struts write tag |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.util.RequestUtils; |
import org.apache.struts.util.ResponseUtils; |
public class WriteTag |
extends org.apache.struts.taglib.bean.WriteTag |
{ |
protected String defValue; |
public String getDefault() |
{ |
return defValue; |
} |
public void setDefault(String defValue) |
{ |
this.defValue = defValue; |
} |
public int doStartTag() |
throws JspException |
{ |
Object value; |
if(ignore && RequestUtils.lookup(pageContext, name, scope) == null) |
value = null; |
else |
value = RequestUtils.lookup(pageContext, name, property, scope); |
if(value == null) value = defValue; |
if(value != null) { |
if(filter) |
ResponseUtils.write(pageContext, ResponseUtils.filter(formatValue(value))); |
else |
ResponseUtils.write(pageContext, formatValue(value)); |
} |
return SKIP_BODY; |
} |
public void release() |
{ |
super.release(); |
defValue = null; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/MethodTagBase.java |
---|
0,0 → 1,63 |
package ak.hostadmiral.core.taglib; |
import java.lang.reflect.Method; |
import javax.servlet.jsp.JspException; |
import ak.hostadmiral.core.model.User; |
import org.apache.struts.util.RequestUtils; |
public abstract class MethodTagBase |
extends RightTagBase |
{ |
protected String method; |
public String getMethod() |
{ |
return method; |
} |
public void setMethod(String method) |
{ |
this.method = method; |
} |
public void release() |
{ |
super.release(); |
method = null; |
} |
protected boolean condition() |
throws JspException |
{ |
Method m; |
Object value; |
// find method |
try { |
m = object.getClass().getMethod(method, new Class[] { User.class } ); |
} |
catch(NoSuchMethodException ex) { |
throw new JspException("Method " + method |
+ " with parameter of type user not found"); |
} |
// invoke it |
try { |
value = m.invoke(object, new Object[] { user } ); |
} |
catch(Exception ex) { |
throw new JspException("Cannot call " + method + ": " + ex.getMessage()); |
} |
// check value type |
if(!(value instanceof Boolean)) |
throw new JspException("Return type of method " + method |
+ " must be java.lang.Boolean"); |
return condition(((Boolean)value).booleanValue()); |
} |
protected abstract boolean condition(boolean value) |
throws JspException; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NoRightsTag.java |
---|
0,0 → 1,15 |
package ak.hostadmiral.core.taglib; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.util.RequestUtils; |
public class NoRightsTag |
extends MethodTagBase |
{ |
protected boolean condition(boolean value) |
throws JspException |
{ |
return !value; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/Locales.java |
---|
0,0 → 1,17 |
package ak.hostadmiral.core; |
import java.util.Locale; |
public abstract class Locales |
{ |
private static final Locale[] locales = { |
new Locale("en"), |
new Locale("de"), |
new Locale("ru") |
}; |
public static Locale[] getLocales() |
{ |
return locales; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/CoreResources.java |
---|
0,0 → 1,40 |
package ak.hostadmiral.core; |
public abstract class CoreResources |
{ |
public static final String LOGIN_FAILED = "ak.hostadmiral.core.login.failed"; |
public static final String OLD_PASSWORD_WRONG = "ak.hostadmiral.core.oldpassword.wrong"; |
public static final String PASSWORD_REQUIRED = "ak.hostadmiral.core.password.required"; |
public static final String PASSWORDS_DONT_MATCH = "ak.hostadmiral.core.password.dontMatch"; |
public static final String DELETE_ME_SELF = "ak.hostadmiral.core.user.deletemeself"; |
public static final String NONUNIQUE_USER_LOGIN = "ak.hostadmiral.core.user.login.nonunique"; |
public static final String NONUNIQUE_SYSTEM_USER_UID |
= "ak.hostadmiral.core.user.system.uid.nonunique"; |
public static final String NONUNIQUE_SYSTEM_USER_NAME |
= "ak.hostadmiral.core.user.system.name.nonunique"; |
public static final String NONUNIQUE_DOMAIN_NAME |
= "ak.hostadmiral.core.domain.name.nonunique"; |
public static final String NONUNIQUE_MAILBOX_LOGIN |
= "ak.hostadmiral.core.mailbox.login.nonunique"; |
public static final String NONUNIQUE_MAIL_ALIAS_ADDRESS |
= "ak.hostadmiral.core.mail.alias.address.nonunique"; |
public static final String TYPE_USER = "ak.hostadmiral.core.type.user"; |
public static final String TYPE_SYSTEM_USER = "ak.hostadmiral.core.type.systemUser"; |
public static final String TYPE_DOMAIN = "ak.hostadmiral.core.type.domain"; |
public static final String TYPE_MAILBOX = "ak.hostadmiral.core.type.mailbox"; |
public static final String TYPE_MAIL_ALIAS = "ak.hostadmiral.core.type.mailAlias"; |
public static final String TYPE_MAIL_ALIAS_DESTINATION |
= "ak.hostadmiral.core.type.mailAliasDestination"; |
public static final String IDENT_USER = "ak.hostadmiral.core.ident.user"; |
public static final String IDENT_SYSTEM_USER = "ak.hostadmiral.core.ident.systemUser"; |
public static final String IDENT_DOMAIN = "ak.hostadmiral.core.ident.domain"; |
public static final String IDENT_MAILBOX = "ak.hostadmiral.core.ident.mailbox"; |
public static final String IDENT_MAIL_ALIAS = "ak.hostadmiral.core.ident.mailAlias"; |
public static final String IDENT_MAIL_ALIAS_DESTINATION_EXTERNAL |
= "ak.hostadmiral.core.ident.mailAliasDestination.external"; |
public static final String IDENT_MAIL_ALIAS_DESTINATION_INTERNAL |
= "ak.hostadmiral.core.ident.mailAliasDestination.internal"; |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/form/MailAliasDestBean.java |
---|
0,0 → 1,77 |
package ak.hostadmiral.core.form; |
import ak.hostadmiral.util.StringConverter; |
import ak.hostadmiral.core.model.MailAliasDestination; |
public final class MailAliasDestBean |
{ |
private String id; |
private String mailbox; |
private String email; |
private Boolean enabled; |
private String comment; |
public MailAliasDestBean() |
{ |
} |
public MailAliasDestBean(MailAliasDestination dest) |
{ |
this.id = StringConverter.toString(dest.getId()); |
this.mailbox = (dest.getMailbox() == null) |
? null : StringConverter.toString(dest.getMailbox().getId()); |
this.email = dest.getEmail(); |
this.enabled = dest.getEnabled(); |
this.comment = dest.getComment(); |
} |
public String getId() |
{ |
return id; |
} |
public void setId(String id) |
{ |
this.id = id; |
} |
public String getMailbox() |
{ |
return mailbox; |
} |
public void setMailbox(String mailbox) |
{ |
this.mailbox = mailbox; |
} |
public String getEmail() |
{ |
return email; |
} |
public void setEmail(String email) |
{ |
this.email = email; |
} |
public Boolean getEnabled() |
{ |
return enabled; |
} |
public void setEnabled(Boolean enabled) |
{ |
this.enabled = enabled; |
} |
public String getComment() |
{ |
return comment; |
} |
public void setComment(String comment) |
{ |
this.comment = comment; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/core/form/UserPasswordForm.java |
---|
0,0 → 1,30 |
package ak.hostadmiral.core.form; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.struts.action.ActionError; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionMapping; |
import ak.hostadmiral.core.CoreResources; |
public final class UserPasswordForm |
extends org.apache.struts.validator.DynaValidatorForm |
{ |
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) |
{ |
ActionErrors errors = super.validate(mapping, request); |
if(errors == null || errors.size() == 0) { // if no errors in simple checks |
String password = (String)get("password"); |
String password2 = (String)get("password2"); |
if(!password.equals(password2)) { |
if(errors == null) errors = new ActionErrors(); |
errors.add("password", new ActionError(CoreResources.PASSWORDS_DONT_MATCH)); |
} |
} |
return errors; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/util/ModelSecurityException.java |
---|
0,0 → 1,10 |
package ak.hostadmiral.util; |
public class ModelSecurityException |
extends ModelException |
{ |
public ModelSecurityException() |
{ |
super("ak.hostadmiral.core.access.denied"); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/util/UserException.java |
---|
0,0 → 1,28 |
package ak.hostadmiral.util; |
public class UserException |
extends Exception |
{ |
private Object[] values; |
public UserException() |
{ |
this(null, null); |
} |
public UserException(String message) |
{ |
this(message, null); |
} |
public UserException(String message, Object[] values) |
{ |
super(message); |
this.values = values; |
} |
public Object[] getValues() |
{ |
return values; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/util/StringConverter.java |
---|
0,0 → 1,52 |
package ak.hostadmiral.util; |
public abstract class StringConverter |
{ |
public static boolean isEmpty(Object o) |
{ |
if(o == null) |
return true; |
else if((o instanceof String) && ((String)o).equals("")) |
return true; |
else |
return false; |
} |
public static Long parseLong(Object o) |
throws NumberFormatException |
{ |
if(o instanceof String) { |
String s = (String)o; |
if(s == null || s.equals("")) |
return null; |
else |
return new Long(s); |
} |
else { |
throw new ClassCastException("String is expected, but it is " + o.getClass()); |
} |
} |
public static Integer parseInteger(Object o) |
throws NumberFormatException |
{ |
if(o instanceof String) { |
String s = (String)o; |
if(s == null || s.equals("")) |
return null; |
else |
return new Integer(s); |
} |
else { |
throw new ClassCastException("String is expected, but it is " + o.getClass()); |
} |
} |
public static String toString(Object o) |
{ |
if(o == null) |
return null; |
else |
return o.toString(); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/util/Digest.java |
---|
0,0 → 1,51 |
package ak.hostadmiral.util; |
import java.security.MessageDigest; |
import java.security.NoSuchAlgorithmException; |
public class Digest |
{ |
/** |
* digest to encode passwords |
*/ |
protected static MessageDigest digest = null; |
private static final char[] hexDigits = { |
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' |
}; |
public static String encode(String password) |
{ |
return bytesToHex(digest.digest(password.getBytes())); |
} |
/** |
* converts password bytes to hex string |
*/ |
protected static String bytesToHex(byte[] bytes) |
{ |
char[] buffer = new char[bytes.length * 2]; |
for (int i = 0; i < bytes.length; i++) { |
int low = (int)( bytes[i] & 0x0f); |
int high = (int)((bytes[i] & 0xf0) >> 4); |
buffer[i * 2] = hexDigits[high]; |
buffer[i * 2 + 1] = hexDigits[low]; |
} |
return new String(buffer); |
} |
/** |
* digest initialization |
*/ |
static { |
try { |
digest = MessageDigest.getInstance("MD5"); |
} |
catch(NoSuchAlgorithmException ex) { |
ex.printStackTrace(); |
} |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/util/HibernateUtil.java |
---|
0,0 → 1,109 |
package ak.hostadmiral.util; |
import net.sf.hibernate.*; |
import net.sf.hibernate.cfg.*; |
public class HibernateUtil |
{ |
private static Configuration configuration; |
private static SessionFactory sessionFactory; |
private static final ThreadLocal hibernateBean = new ThreadLocal(); |
public static Configuration getConfiguration() |
throws HibernateException |
{ |
if(configuration == null) |
configuration = new Configuration(); |
return configuration; |
} |
public static SessionFactory getSessionFactory() |
throws HibernateException |
{ |
if(sessionFactory == null) |
sessionFactory = getConfiguration().configure().buildSessionFactory(); |
return sessionFactory; |
} |
private static HibernateBean currentBean() |
throws HibernateException |
{ |
HibernateBean hb = (HibernateBean)hibernateBean.get(); |
if(hb == null) { |
hb = new HibernateBean(); |
hb.session = getSessionFactory().openSession(); |
hibernateBean.set(hb); |
} |
return hb; |
} |
public static Session currentSession() |
throws HibernateException |
{ |
return currentBean().session; |
} |
public static void closeSession() |
throws HibernateException, ModelException |
{ |
HibernateBean hb = (HibernateBean)hibernateBean.get(); |
if(hb == null) |
throw new ModelException("No session found for this thread"); |
hibernateBean.set(null); |
hb.session.close(); |
} |
public static void beginTransaction() |
throws HibernateException, ModelException |
{ |
HibernateBean hb = (HibernateBean)hibernateBean.get(); |
if(hb != null && hb.transaction != null) |
throw new ModelException("Transaction is already open"); |
currentBean().transaction = currentSession().beginTransaction(); |
} |
public static boolean isTransactionOpen() |
throws HibernateException, ModelException |
{ |
HibernateBean hb = (HibernateBean)hibernateBean.get(); |
return (hb != null) && (hb.transaction != null); |
} |
public static void commitTransaction() |
throws HibernateException, ModelException |
{ |
HibernateBean hb = (HibernateBean)hibernateBean.get(); |
if(hb == null || hb.transaction == null) |
throw new ModelException("No open transaction"); |
hb.transaction.commit(); |
hb.transaction = null; |
} |
public static void rollbackTransaction() |
throws HibernateException, ModelException |
{ |
HibernateBean hb = (HibernateBean)hibernateBean.get(); |
if(hb == null || hb.transaction == null) |
throw new ModelException("No open transaction"); |
hb.transaction.rollback(); |
hb.transaction = null; |
} |
static class HibernateBean |
{ |
public Session session; |
public Transaction transaction; |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/util/ModelException.java |
---|
0,0 → 1,44 |
package ak.hostadmiral.util; |
public class ModelException |
extends Exception |
{ |
private Exception chainedException; |
public ModelException() |
{ |
this(null, null); |
} |
public ModelException(String message) |
{ |
this(message, null); |
} |
public ModelException(Exception chainedException) |
{ |
this(null, chainedException); |
} |
public ModelException(String message, Exception chainedException) |
{ |
super(message); |
this.chainedException = chainedException; |
} |
public Exception getChainedException() |
{ |
return chainedException; |
} |
public void setChainedException(Exception chainedException) |
{ |
this.chainedException = chainedException; |
} |
public String toString() |
{ |
return super.toString() |
+ (chainedException == null ? "" : "\n" + chainedException.toString()); |
} |
} |
/sun/hostadmiral/trunk/src/ak/hostadmiral/util/FormException.java |
---|
0,0 → 1,39 |
package ak.hostadmiral.util; |
public class FormException |
extends UserException |
{ |
private String property; |
public FormException() |
{ |
this(null, null, null); |
} |
public FormException(String message) |
{ |
this(message, null, null); |
} |
public FormException(String message, String property) |
{ |
this(message, property, null); |
} |
public FormException(String message, String property, Object[] values) |
{ |
super(message, values); |
this.property = property; |
} |
public String getProperty() |
{ |
return property; |
} |
public String toString() |
{ |
return super.toString() |
+ (property == null ? "" : " for " + property); |
} |
} |
/sun/hostadmiral/trunk/build.xml |
---|
0,0 → 1,118 |
<project name="hostadmiral" default="deploy" basedir="."> |
<property name="build.compiler" value="jikes" /> |
<property name="src" location="src" /> |
<property name="classes" location="classes" /> |
<property name="app.web-inf" location="webapp/WEB-INF" /> |
<property name="classes.deploy" location="${app.web-inf}/classes" /> |
<property name="conf" location="conf" /> |
<property name="lib" location="lib" /> |
<property name="lib.ant" location="lib/ant" /> |
<property name="lib.deploy" location="${app.web-inf}/lib" /> |
<property name="classpath" value="" /> |
<path id="classpath.general"> |
<pathelement path="${classpath}" /> |
<fileset dir="${lib.deploy}"> |
<include name="*.jar" /> |
</fileset> |
</path> |
<path id="classpath.test"> |
<path refid="classpath.general" /> |
<pathelement location="${classes.deploy}" /> |
</path> |
<path id="classpath.compile"> |
<path refid="classpath.general" /> |
<pathelement location="${classes}" /> |
<fileset dir="${lib}"> |
<include name="**/*.jar" /> |
<exclude name="ant/" /> |
</fileset> |
</path> |
<path id="classpath.ant"> |
<fileset dir="${lib.ant}"> |
<include name="**/*.jar" /> |
</fileset> |
</path> |
<taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask"> |
<classpath refid="classpath.ant"/> |
</taskdef> |
<target name="compile"> |
<mkdir dir="${classes}" /> |
<javac |
srcdir="${src}" |
destdir="${classes}" |
classpathref="classpath.compile" |
debug="on" |
nowarn="on" |
/> |
</target> |
<target name="hibernate"> |
<hibernatedoclet |
destdir="${classes}" |
excludedtags="@version,@author,@todo" |
mergedir="${classes}" |
verbose="false" |
> |
<fileset dir="src"> |
<include name="**/*.java" /> |
</fileset> |
<hibernate version="2.0" /> |
</hibernatedoclet> |
</target> |
<target name="deploy" depends="compile,hibernate"> |
<copy todir="${classes.deploy}"> |
<fileset dir="${classes}" /> |
</copy> |
<copy todir="${classes.deploy}"> |
<fileset |
dir="${classes}" |
includes="**/*.xml" |
/> |
</copy> |
<copy todir="${app.web-inf}" flatten="yes"> |
<fileset |
dir="${src}" |
includes="**/*.tld" |
/> |
</copy> |
<native2ascii |
encoding="UTF8" |
src="${src}" |
dest="${classes.deploy}" |
includes="**/*.properties" |
/> |
<copy todir="${classes.deploy}" file="${conf}/log4j.properties" /> |
<copy todir="${classes.deploy}" file="${conf}/hibernate.cfg.xml" /> |
<touch file="${app.web-inf}/web.xml" /> |
</target> |
<target name="clean"> |
<delete dir="${classes}"/> |
<delete dir="${classes.deploy}"/> |
</target> |
<target name="all" depends="clean,deploy" /> |
<target name="test" depends="deploy"> |
<java |
classname="ak.hostadmiral.core.model.test.Test" |
classpathref="classpath.test" |
/> |
</target> |
</project> |
/sun/hostadmiral/trunk/webapp/generalError.jsp |
---|
0,0 → 1,28 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.generalError.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.generalError.title" /></h1> |
<p><bean:message key="ak.hostadmiral.page.generalError.message" /></p> |
<!-- FIXME: backpath:link><bean:message key="ak.hostadmiral.page.generalError.index" /></ backpath : link--> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.generalError.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/index.jsp |
---|
0,0 → 1,54 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.index.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.index.title" /></h1> |
<ul> |
<li><backpath:link action="/user/password/show"><bean:message key="ak.hostadmiral.page.index.password_change" /></backpath:link></li> |
<li><backpath:link action="/user/list"><bean:message key="ak.hostadmiral.page.index.user_list" /></backpath:link></li> |
<logic:equal name="showSystemUsers" value="true"> |
<li><backpath:link action="/user/system/list"><bean:message key="ak.hostadmiral.page.index.system_user_list" /></backpath:link></li> |
</logic:equal> |
<logic:equal name="showInetDomains" value="true"> |
<li><backpath:link action="/domain/list"><bean:message key="ak.hostadmiral.page.index.domain_list" /></backpath:link></li> |
</logic:equal> |
<logic:equal name="showMailboxes" value="true"> |
<li><backpath:link action="/mail/box/list"><bean:message key="ak.hostadmiral.page.index.mail_box_list" /></backpath:link></li> |
</logic:equal> |
<logic:equal name="showMailAliases" value="true"> |
<li><backpath:link action="/mail/alias/list"><bean:message key="ak.hostadmiral.page.index.mail_alias_list" /></backpath:link></li> |
</logic:equal> |
<li><backpath:link action="/system/logout"><bean:message key="ak.hostadmiral.page.index.logout" /></backpath:link></li> |
</ul> |
<p> |
<bean:message key="ak.hostadmiral.page.index.login" />: |
<bean:write name="user" property="login" /> |
</p> |
<p> |
<bean:message key="ak.hostadmiral.page.index.locale" />: |
<core:language /> |
<logic:notEmpty name="user" property="locale.displayCountry"> |
/ <core:country /> |
</logic:notEmpty> |
</p> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/mail/box/view.jsp |
---|
0,0 → 1,104 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.mail.box.view.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.mail.box.view.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.login" /></th> |
<td><bean:write name="mailbox" property="login" /></td> |
</tr> |
<tr> |
<td colspan=2>FIXME: show if password is get from owner</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.domain" /></th> |
<td><bean:write name="mailbox" property="domain.name" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.owner" /></th> |
<td><bean:write name="mailbox" property="owner.login" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.systemuser" /></th> |
<td> |
<logic:present name="mailbox" property="systemUser"> |
<bean:write name="mailbox" property="systemUser.name" /> (<bean:write name="mailbox" property="systemUser.uid" />) |
</logic:present> |
<logic:notPresent name="mailbox" property="systemUser"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.systemuser.empty" /> |
</logic:notPresent> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.viruscheck" /></th> |
<td> |
<logic:equal name="mailbox" property="virusCheck" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.viruscheck.true" /> |
</logic:equal> |
<logic:notEqual name="mailbox" property="virusCheck" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.viruscheck.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.spamcheck" /></th> |
<td> |
<logic:equal name="mailbox" property="spamCheck" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.spamcheck.true" /> |
</logic:equal> |
<logic:notEqual name="mailbox" property="spamCheck" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.spamcheck.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.enabled" /></th> |
<td> |
<logic:equal name="mailbox" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.enabled.true" /> |
</logic:equal> |
<logic:notEqual name="mailbox" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.enabled.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.view.comment" /></th> |
<td><bean:write name="mailbox" property="comment" /> </td> |
</tr> |
<tr> |
<td colspan=2> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.mail.box.view.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/mail/box/list.jsp |
---|
0,0 → 1,84 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.mail.box.list.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.mail.box.list.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.list.login" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.box.list.domain" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.box.list.owner" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.box.list.enabled" /></th> |
<th> </th> |
<th> </th> |
</tr> |
<logic:iterate name="mailboxes" id="mailbox"> |
<tr> |
<td><bean:write name="mailbox" property="login" /></td> |
<td><bean:write name="mailbox" property="domain.name" /></td> |
<td><bean:write name="mailbox" property="owner.login" /></td> |
<td> |
<logic:equal name="mailbox" property="enabled" value="true">x</logic:equal> |
<logic:notEqual name="mailbox" property="enabled" value="true"> </logic:notEqual> |
</td> |
<td> |
<core:editable name="mailbox"> |
<backpath:link action="/mail/box/edit" paramId="id" paramName="mailbox" paramProperty="id"><bean:message key="ak.hostadmiral.page.mail.box.list.edit" /></backpath:link> |
</core:editable> |
<core:notEditable name="mailbox"> |
<core:viewable name="mailbox"> |
<backpath:link action="/mail/box/edit" paramId="id" paramName="mailbox" paramProperty="id"><bean:message key="ak.hostadmiral.page.mail.box.list.view" /></backpath:link> |
</core:viewable> |
<core:notViewable name="mailbox"> |
|
</core:notViewable> |
</core:notEditable> |
</td> |
<td> |
<core:deleteable name="mailbox"> |
<backpath:link action="/mail/box/delete" paramId="id" paramName="mailbox" paramProperty="id"><bean:message key="ak.hostadmiral.page.mail.box.list.delete" /></backpath:link> |
</core:deleteable> |
<core:notDeleteable name="mailbox"> |
|
</core:notDeleteable> |
</td> |
</tr> |
</logic:iterate> |
</table> |
<logic:equal name="allowedToCreate" value="true"> |
<backpath:link action="/mail/box/edit"><bean:message key="ak.hostadmiral.page.mail.box.list.add" /></backpath:link> |
</logic:equal> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.mail.box.list.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/mail/box/edit.jsp |
---|
0,0 → 1,106 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.mail.box.edit.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.mail.box.edit.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/mail/box/submit"> |
<backpath:current /> |
<html:hidden property="id" /> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.login" /></th> |
<td><html:text property="login" /></td> |
</tr> |
<tr> |
<td colspan=2>FIXME: checkbox to get password from owner</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.password" /></th> |
<td><html:password property="password" redisplay="false" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.password_again" /></th> |
<td><html:password property="password2" redisplay="false" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.domain" /></th> |
<td> |
<html:select property="domain"> |
<html:option value="" key="ak.hostadmiral.page.mail.box.edit.domain.empty"/> |
<html:options collection="domains" property="id" labelProperty="name" /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.owner" /></th> |
<td> |
<html:select property="owner"> |
<html:option value="" key="ak.hostadmiral.page.mail.box.edit.owner.empty"/> |
<html:options collection="users" property="id" labelProperty="login" /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.systemuser" /></th> |
<td> |
<html:select property="systemuser"> |
<html:option value="" key="ak.hostadmiral.page.mail.box.edit.systemuser.empty"/> |
<core:options collection="systemusers" property="id" /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.viruscheck" /></th> |
<td><html:checkbox property="viruscheck" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.spamcheck" /></th> |
<td><html:checkbox property="spamcheck" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.enabled" /></th> |
<td><html:checkbox property="enabled" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.box.edit.comment" /></th> |
<td><html:textarea property="comment" /></td> |
</tr> |
<tr> |
<td colspan=2> |
<html:submit><bean:message key="ak.hostadmiral.page.mail.box.edit.submit" /></html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.mail.box.edit.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/mail/alias/edit.jsp |
---|
0,0 → 1,168 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.mail.alias.edit.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
<script> |
function submitForm() |
{ |
idx = 0; |
while(true) { |
var t = document.forms[0].elements["dests[" + (idx++) + "].email"]; |
if(t) t.disabled = false; |
else break; |
} |
} |
function loadForm() |
{ |
idx = 0; |
while(true) { |
var s = document.forms[0].elements["dests[" + (idx++) + "].mailbox"]; |
if(s) mailboxChanged(s); |
else break; |
} |
} |
function mailboxChanged(s) |
{ |
// extract index |
var name = s.name; |
var i1 = name.indexOf("["); |
var i2 = name.indexOf("]"); |
if(i1 < 0 || i2 < 0) return; |
var idx = name.substring(i1+1, i2); |
// find text field |
var t = document.forms[0].elements["dests[" + idx + "].email"]; |
// change status |
if(t) { |
if(s.options[s.selectedIndex] && s.options[s.selectedIndex].value != '') { |
t.disabled = true; |
} |
else { |
t.disabled = false; |
} |
} |
} |
</script> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.mail.alias.edit.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/mail/alias/submit" onsubmit="submitForm()"> |
<backpath:current/> |
<html:hidden property="id" /> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.address" /></th> |
<td><html:text property="address" /></td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.domain" /></th> |
<td> |
<html:select property="domain"> |
<html:option value="" key="ak.hostadmiral.page.mail.alias.edit.domain.empty"/> |
<html:options collection="domains" property="id" labelProperty="name" /> |
</html:select> |
</td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.owner" /></th> |
<td> |
<html:select property="owner"> |
<html:option value="" key="ak.hostadmiral.page.mail.alias.edit.owner.empty"/> |
<html:options collection="users" property="id" labelProperty="login" /> |
</html:select> |
</td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.enabled" /></th> |
<td><html:checkbox property="enabled" /></td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.comment" /></th> |
<td><html:textarea property="comment" /></td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.header.tomailbox" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.header.toexternal" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.header.enabled" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.edit.header.comment" /></th> |
<th> </th> |
</tr> |
<logic:iterate name="MailAliasEditForm" property="dests" id="dests" indexId="iid"> |
<tr> |
<td> |
<html:hidden name="dests" property="id" indexed="true" /> |
<html:select name="dests" property="mailbox" indexed="true" onchange="mailboxChanged(this)"> |
<html:option value="" key="ak.hostadmiral.page.mail.alias.edit.external"/> |
<html:options collection="mailboxes" property="id" labelProperty="login" /> |
</html:select> |
</td> |
<td><html:text name="dests" property="email" indexed="true" /></td> |
<td><html:checkbox name="dests" property="enabled" indexed="true" /></td> |
<td><html:text name="dests" property="comment" indexed="true" /></td> |
<td><html:submit property="delete.dests" indexed="true"><bean:message key="ak.hostadmiral.page.mail.alias.edit.delete" /></html:submit></td> |
</tr> |
</logic:iterate> |
<tr> |
<td colspan=5><html:submit property="add"><bean:message key="ak.hostadmiral.page.mail.alias.edit.add" /></html:submit></td> |
<tr> |
</tr> |
<td colspan=5> |
<html:submit property="submit"><bean:message key="ak.hostadmiral.page.mail.alias.edit.submit" /></html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.mail.alias.edit.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
<script>loadForm();</script> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/mail/alias/editdests.jsp |
---|
0,0 → 1,165 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.mail.alias.editdest.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
<script> |
function submitForm() |
{ |
idx = 0; |
while(true) { |
var t = document.forms[0].elements["dests[" + (idx++) + "].email"]; |
if(t) t.disabled = false; |
else break; |
} |
} |
function loadForm() |
{ |
idx = 0; |
while(true) { |
var s = document.forms[0].elements["dests[" + (idx++) + "].mailbox"]; |
if(s) mailboxChanged(s); |
else break; |
} |
} |
function mailboxChanged(s) |
{ |
// extract index |
var name = s.name; |
var i1 = name.indexOf("["); |
var i2 = name.indexOf("]"); |
if(i1 < 0 || i2 < 0) return; |
var idx = name.substring(i1+1, i2); |
// find text field |
var t = document.forms[0].elements["dests[" + idx + "].email"]; |
// change status |
if(t) { |
if(s.options[s.selectedIndex] && s.options[s.selectedIndex].value != '') { |
t.disabled = true; |
} |
else { |
t.disabled = false; |
} |
} |
} |
</script> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.mail.alias.editdest.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/mail/alias/submit" onsubmit="submitForm()"> |
<backpath:current/> |
<html:hidden property="id" /> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.address" /></th> |
<td><bean:write name="alias" property="address" /></td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.domain" /></th> |
<td><bean:write name="alias" property="domain.name" /></td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.owner" /></th> |
<td><bean:write name="alias" property="owner.login" /></td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.enabled" /></th> |
<td> |
<logic:equal name="alias" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.enabled.true" /> |
</logic:equal> |
<logic:notEqual name="alias" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.mail.box.view.enabled.false" /> |
</logic:notEqual> |
</td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.comment" /></th> |
<td><bean:write name="alias" property="comment" /> </td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.header.tomailbox" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.header.toexternal" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.header.enabled" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.editdest.header.comment" /></th> |
<th> </th> |
</tr> |
<logic:iterate name="MailAliasEditForm" property="dests" id="dests" indexId="iid"> |
<tr> |
<td> |
<html:hidden name="dests" property="id" indexed="true" /> |
<html:select name="dests" property="mailbox" indexed="true" onchange="mailboxChanged(this)"> |
<html:option value="" key="ak.hostadmiral.page.mail.alias.editdest.external"/> |
<html:options collection="mailboxes" property="id" labelProperty="login" /> |
</html:select> |
</td> |
<td><html:text name="dests" property="email" indexed="true" /></td> |
<td><html:checkbox name="dests" property="enabled" indexed="true" /></td> |
<td><html:text name="dests" property="comment" indexed="true" /></td> |
<td><html:submit property="delete.dests" indexed="true"><bean:message key="ak.hostadmiral.page.mail.alias.editdest.delete" /></html:submit></td> |
</tr> |
</logic:iterate> |
<tr> |
<td colspan=5><html:submit property="add"><bean:message key="ak.hostadmiral.page.mail.alias.editdest.add" /></html:submit></td> |
<tr> |
</tr> |
<td colspan=5> |
<html:submit property="submit"><bean:message key="ak.hostadmiral.page.mail.alias.editdest.submit" /></html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.mail.alias.editdest.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
<script>loadForm();</script> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/mail/alias/view.jsp |
---|
0,0 → 1,43 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.mail.alias.view.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.mail.alias.view.title" /></h1> |
<h2>FIXME: NOT IMPLEMENTED. DO WE REALLY NEED IT?</h2> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
</tr> |
<td colspan=5> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.mail.alias.view.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/mail/alias/list.jsp |
---|
0,0 → 1,89 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.mail.alias.list.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.mail.alias.list.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.list.alias" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.list.domain" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.list.owner" /></th> |
<th><bean:message key="ak.hostadmiral.page.mail.alias.list.enabled" /></th> |
<th> </th> |
<th> </th> |
</tr> |
<logic:iterate name="aliases" id="alias"> |
<tr> |
<td><bean:write name="alias" property="address" /></td> |
<td><bean:write name="alias" property="domain.name" /></td> |
<td><bean:write name="alias" property="owner.login" /></td> |
<td> |
<logic:equal name="alias" property="enabled" value="true">x</logic:equal> |
<logic:notEqual name="alias" property="enabled" value="true"> </logic:notEqual> |
</td> |
<td> |
<core:editable name="alias"> |
<backpath:link action="/mail/alias/edit" paramId="id" paramName="alias" paramProperty="id"><bean:message key="ak.hostadmiral.page.mail.alias.list.edit" /></backpath:link> |
</core:editable> |
<core:notEditable name="alias"> |
<core:rights name="alias" method="mayChangeDestinations"> |
<backpath:link action="/mail/alias/edit" paramId="id" paramName="alias" paramProperty="id"><bean:message key="ak.hostadmiral.page.mail.alias.list.editdests" /></backpath:link> |
</core:rights> |
<core:noRights name="alias" method="mayChangeDestinations"> |
<core:viewable name="alias"> |
<backpath:link action="/mail/alias/edit" paramId="id" paramName="alias" paramProperty="id"><bean:message key="ak.hostadmiral.page.mail.alias.list.view" /></backpath:link> |
</core:viewable> |
<core:notViewable name="alias"> |
|
</core:notViewable> |
</core:noRights> |
</core:notEditable> |
</td> |
<td> |
<core:deleteable name="alias"> |
<backpath:link action="/mail/alias/delete" paramId="id" paramName="alias" paramProperty="id"><bean:message key="ak.hostadmiral.page.mail.alias.list.delete" /></backpath:link> |
</core:deleteable> |
<core:notDeleteable name="alias"> |
|
</core:notDeleteable> |
</td> |
</tr> |
</logic:iterate> |
</table> |
<logic:equal name="allowedToCreate" value="true"> |
<backpath:link action="/mail/alias/edit"><bean:message key="ak.hostadmiral.page.mail.alias.list.add" /></backpath:link> |
</logic:equal> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.mail.alias.list.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/error.jsp |
---|
0,0 → 1,36 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.error.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.error.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.error.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/system/login.jsp |
---|
0,0 → 1,69 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.system.login.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/system/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.system.login.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/system/login/submit" focus="login" onsubmit="return validateLoginForm(this);"> |
<backpath:current /> |
<table border=1> |
<tr> |
<th class="right"> |
<bean:message key="ak.hostadmiral.page.system.login.login" /> |
</th> |
<td class="left"> |
<html:text property="login" size="16"/> |
</td> |
</tr> |
<tr> |
<th class="right"> |
<bean:message key="ak.hostadmiral.page.system.login.password" /> |
</th> |
<td class="left"> |
<html:password property="password" size="16" redisplay="false" /> |
</td> |
</tr> |
<tr> |
<td class="right"> |
<html:submit> |
<bean:message key="ak.hostadmiral.page.system.login.submit" /> |
</html:submit> |
</td> |
<td class="right"> |
<html:reset> |
<bean:message key="ak.hostadmiral.page.system.login.reset" /> |
</html:reset> |
</td> |
</tr> |
</table> |
</html:form> |
<html:javascript formName="LoginForm" /> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/system/logout.jsp |
---|
0,0 → 1,39 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.system.logout.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/system/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.system.logout.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<p><bean:message key="ak.hostadmiral.page.system.logout.message" /></p> |
<p><html:link action="/system/login"><bean:message key="ak.hostadmiral.page.system.logout.login" /></html:link></p> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.system.logout.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/system/general.css |
---|
0,0 → 1,0 |
.error {color:red;} |
/sun/hostadmiral/trunk/webapp/deleting.jsp |
---|
0,0 → 1,55 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ page import="java.util.*,ak.hostadmiral.core.model.*" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.index.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.index.title" /></h1> |
<p>Object: <bean:write name="object" property="identKey" /></p> |
<p>Action: <bean:write name="action" /></p> |
<ul> |
<% |
Collection cascade = (Collection)request.getAttribute("cascade"); |
for(Iterator i = cascade.iterator(); i.hasNext(); ) { |
CascadeDeleteElement e = (CascadeDeleteElement)i.next(); |
pageContext.setAttribute("e", e); |
%><li> |
<logic:equal name="e" property="effect" value="1"> |
FORBIDDEN |
</logic:equal> |
<logic:equal name="e" property="effect" value="2"> |
delete |
</logic:equal> |
<logic:equal name="e" property="effect" value="3"> |
change |
</logic:equal> |
<strutsx:message name="e" property="object.typeKey" /> |
<em><strutsx:message name="e" property="object.identKey" valuesProperty="object.identParams" /></em> |
<bean:write name="e" property="cascade" /> |
</li><% |
} |
%> |
</ul> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.list.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/WEB-INF/struts-config.xml |
---|
0,0 → 1,487 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> |
<struts-config> |
<form-beans> |
<form-bean |
name="LoginForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="login" type="java.lang.String" /> |
<form-property name="password" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="ChangePasswordForm" |
type="ak.hostadmiral.core.form.UserPasswordForm"> |
<form-property name="oldpassword" type="java.lang.String" /> |
<form-property name="password" type="java.lang.String" /> |
<form-property name="password2" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="UserForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="UserLoginsForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="UserEditForm" |
type="ak.hostadmiral.core.form.UserPasswordForm"> |
<form-property name="id" type="java.lang.String" /> |
<form-property name="login" type="java.lang.String" /> |
<form-property name="password" type="java.lang.String" /> |
<form-property name="password2" type="java.lang.String" /> |
<form-property name="boss" type="java.lang.String" /> |
<form-property name="superuser" type="java.lang.Boolean" /> |
<form-property name="locale" type="java.lang.String" /> |
<form-property name="enabled" type="java.lang.Boolean" /> |
<form-property name="comment" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="UserPartEditForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
<form-property name="locale" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="SystemUserForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="SystemUserEditForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
<form-property name="uid" type="java.lang.String" /> |
<form-property name="name" type="java.lang.String" /> |
<form-property name="owner" type="java.lang.String" /> |
<form-property name="enabled" type="java.lang.Boolean" /> |
<form-property name="comment" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="InetDomainForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="InetDomainEditForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
<form-property name="name" type="java.lang.String" /> |
<form-property name="owner" type="java.lang.String" /> |
<form-property name="enabled" type="java.lang.Boolean" /> |
<form-property name="comment" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="MailboxForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="MailboxEditForm" |
type="ak.hostadmiral.core.form.UserPasswordForm"> |
<form-property name="id" type="java.lang.String" /> |
<form-property name="login" type="java.lang.String" /> |
<form-property name="password" type="java.lang.String" /> |
<form-property name="password2" type="java.lang.String" /> |
<form-property name="domain" type="java.lang.String" /> |
<form-property name="owner" type="java.lang.String" /> |
<form-property name="viruscheck" type="java.lang.Boolean" /> |
<form-property name="spamcheck" type="java.lang.Boolean" /> |
<form-property name="systemuser" type="java.lang.String" /> |
<form-property name="enabled" type="java.lang.Boolean" /> |
<form-property name="comment" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="MailAliasForm" |
type="org.apache.struts.validator.DynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
</form-bean> |
<form-bean |
name="MailAliasEditForm" |
type="ak.strutsx.ResizeableDynaValidatorForm"> |
<form-property name="id" type="java.lang.String" /> |
<form-property name="address" type="java.lang.String" /> |
<form-property name="domain" type="java.lang.String" /> |
<form-property name="owner" type="java.lang.String" /> |
<form-property name="enabled" type="java.lang.Boolean" /> |
<form-property name="comment" type="java.lang.String" /> |
<form-property name="dests" type="ak.hostadmiral.core.form.MailAliasDestBean[]" |
size="1" /> |
</form-bean> |
</form-beans> |
<global-exceptions> |
<!-- FIXME: it doesn't work :( --> |
<!-- exception |
key="GeneralException" |
type="java.lang.Exception" |
path="/generalError.jsp" |
/ --> |
<exception |
key="UserException" |
type="ak.hostadmiral.util.UserException" |
handler="ak.hostadmiral.core.action.UserExceptionHandler" |
/> |
</global-exceptions> |
<global-forwards> |
<forward |
name="error" |
path="/error.jsp" |
/> |
</global-forwards> |
<action-mappings> |
<action |
path="/index" |
type="ak.hostadmiral.core.action.IndexAction" |
> |
<forward name="success" path="/index.jsp" /> |
</action> |
<!-- == system ============================================================================ --> |
<action |
path="/system/login" |
forward="/system/login.jsp" /> |
<action |
path="/system/login/submit" |
type="ak.hostadmiral.core.action.LoginAction" |
name="LoginForm" |
validate="true" |
scope="request" |
input="/system/login.jsp" |
> |
<forward name="default" path="/index.do" redirect="true" /> |
</action> |
<action |
path="/system/logout" |
type="ak.hostadmiral.core.action.LogoutAction" |
> |
<forward name="default" path="/system/logout.jsp" /> |
</action> |
<!-- == user ============================================================================== --> |
<action |
path="/user/password/show" |
type="ak.hostadmiral.core.action.ChangePasswordAction" |
parameter="first" |
> |
<forward name="default" path="/user/password/change.jsp" /> |
</action> |
<action |
path="/user/password/submit" |
type="ak.hostadmiral.core.action.ChangePasswordAction" |
parameter="submit" |
name="ChangePasswordForm" |
validate="true" |
scope="request" |
input="/user/password/change.jsp" |
> |
</action> |
<action |
path="/user/logins" |
type="ak.hostadmiral.core.action.UserLoginsAction" |
name="UserLoginsForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/user/logins.jsp" /> |
</action> |
<action |
path="/user/failedLogins" |
type="ak.hostadmiral.core.action.FailedLoginsAction" |
> |
<forward name="default" path="/user/failedLogins.jsp" /> |
</action> |
<action |
path="/user/list" |
type="ak.hostadmiral.core.action.UserAction" |
parameter="list" |
> |
<forward name="default" path="/user/list.jsp" /> |
</action> |
<action |
path="/user/deleting" |
type="ak.hostadmiral.core.action.UserAction" |
parameter="deleting" |
name="UserForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/deleting.jsp" /> |
</action> |
<action |
path="/user/delete" |
type="ak.hostadmiral.core.action.UserAction" |
parameter="delete" |
name="UserForm" |
validate="true" |
scope="request" |
> |
</action> |
<action |
path="/user/edit" |
type="ak.hostadmiral.core.action.UserAction" |
parameter="edit" |
name="UserForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/user/edit.jsp" /> |
<forward name="view" path="/user/view.jsp" /> |
</action> |
<action |
path="/user/submit" |
type="ak.hostadmiral.core.action.UserAction" |
parameter="submit" |
name="UserEditForm" |
validate="true" |
scope="request" |
input="/user/edit.jsp" |
> |
</action> |
<action |
path="/user/partedit" |
type="ak.hostadmiral.core.action.UserAction" |
parameter="partedit" |
name="UserForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/user/partedit.jsp" /> |
</action> |
<action |
path="/user/partsubmit" |
type="ak.hostadmiral.core.action.UserAction" |
parameter="partsubmit" |
name="UserPartEditForm" |
validate="true" |
scope="request" |
input="/user/partedit.jsp" |
> |
</action> |
<!-- == system user ======================================================================= --> |
<action |
path="/user/system/list" |
type="ak.hostadmiral.core.action.SystemUserAction" |
parameter="list" |
> |
<forward name="default" path="/user/system/list.jsp" /> |
</action> |
<action |
path="/user/system/delete" |
type="ak.hostadmiral.core.action.SystemUserAction" |
parameter="delete" |
name="SystemUserForm" |
validate="true" |
scope="request" |
> |
</action> |
<action |
path="/user/system/edit" |
type="ak.hostadmiral.core.action.SystemUserAction" |
parameter="edit" |
name="SystemUserForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/user/system/edit.jsp" /> |
<forward name="view" path="/user/system/view.jsp" /> |
</action> |
<action |
path="/user/system/submit" |
type="ak.hostadmiral.core.action.SystemUserAction" |
parameter="submit" |
name="SystemUserEditForm" |
validate="true" |
scope="request" |
input="/user/system/edit.jsp" |
> |
</action> |
<!-- == system user ======================================================================= --> |
<action |
path="/domain/list" |
type="ak.hostadmiral.core.action.InetDomainAction" |
parameter="list" |
> |
<forward name="default" path="/domain/list.jsp" /> |
</action> |
<action |
path="/domain/delete" |
type="ak.hostadmiral.core.action.InetDomainAction" |
parameter="delete" |
name="InetDomainForm" |
validate="true" |
scope="request" |
> |
</action> |
<action |
path="/domain/edit" |
type="ak.hostadmiral.core.action.InetDomainAction" |
parameter="edit" |
name="InetDomainForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/domain/edit.jsp" /> |
<forward name="view" path="/domain/view.jsp" /> |
</action> |
<action |
path="/domain/submit" |
type="ak.hostadmiral.core.action.InetDomainAction" |
parameter="submit" |
name="InetDomainEditForm" |
validate="true" |
scope="request" |
input="/domain/edit.jsp" |
> |
</action> |
<!-- == mail boxes ======================================================================== --> |
<action |
path="/mail/box/list" |
type="ak.hostadmiral.core.action.MailboxAction" |
parameter="list" |
> |
<forward name="default" path="/mail/box/list.jsp" /> |
</action> |
<action |
path="/mail/box/delete" |
type="ak.hostadmiral.core.action.MailboxAction" |
parameter="delete" |
name="MailboxForm" |
validate="true" |
scope="request" |
> |
</action> |
<action |
path="/mail/box/edit" |
type="ak.hostadmiral.core.action.MailboxAction" |
parameter="edit" |
name="MailboxForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/mail/box/edit.jsp" /> |
<forward name="view" path="/mail/box/view.jsp" /> |
</action> |
<action |
path="/mail/box/submit" |
type="ak.hostadmiral.core.action.MailboxAction" |
parameter="submit" |
name="MailboxEditForm" |
validate="true" |
scope="request" |
input="/mail/box/edit.jsp" |
> |
</action> |
<!-- == mail aliases ====================================================================== --> |
<action |
path="/mail/alias/list" |
type="ak.hostadmiral.core.action.MailAliasAction" |
parameter="list" |
> |
<forward name="default" path="/mail/alias/list.jsp" /> |
</action> |
<action |
path="/mail/alias/delete" |
type="ak.hostadmiral.core.action.MailAliasAction" |
parameter="delete" |
name="MailAliasForm" |
validate="true" |
scope="request" |
> |
</action> |
<action |
path="/mail/alias/edit" |
type="ak.hostadmiral.core.action.MailAliasAction" |
parameter="edit" |
name="MailAliasForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/mail/alias/edit.jsp" /> |
<forward name="editdests" path="/mail/alias/editdests.jsp" /> |
<forward name="view" path="/mail/alias/view.jsp" /> |
</action> |
<action |
path="/mail/alias/submit" |
type="ak.hostadmiral.core.action.MailAliasAction" |
parameter="submit" |
name="MailAliasEditForm" |
validate="true" |
scope="request" |
input="/mail/alias/edit.do" |
> |
<forward name="default" path="/mail/alias/edit.jsp" /> |
<forward name="editdests" path="/mail/alias/editdests.jsp" /> |
<forward name="view" path="/mail/alias/view.jsp" /> |
</action> |
</action-mappings> |
<controller processorClass="ak.strutsx.RequestProcessorX" /> |
<message-resources parameter="ak.hostadmiral.core.CoreResources" /> |
<!-- ========== Plug-Ins Configuration ================================== --> |
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> |
<set-property property="pathnames" |
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> |
</plug-in> |
</struts-config> |
/sun/hostadmiral/trunk/webapp/WEB-INF/ak-strutsx.tld |
---|
0,0 → 1,132 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>backpath</shortname> |
<uri>http://26th.net/strutsx</uri> |
<tag> |
<name>root</name> |
<tagclass>ak.strutsx.taglib.RootTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
<tag> |
<name>errorsIterator</name> |
<tagclass>ak.strutsx.taglib.ErrorsIteratorTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>empty</name> |
<tagclass>ak.strutsx.taglib.EmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>ak.strutsx.taglib.NotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>ak.strutsx.taglib.MessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>valuesName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>valuesProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/validation.xml |
---|
0,0 → 1,156 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<form-validation> |
<global> |
</global> |
<formset> |
<form name="LoginForm"> |
<field property="login" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.login.required" /> |
</field> |
<field property="password" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.password.required" /> |
</field> |
</form> |
<form name="ChangePasswordForm"> |
<field property="oldpassword" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.oldpassword.required" /> |
</field> |
<field property="password" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.password.required" /> |
</field> |
<field property="password2" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.password2.required" /> |
</field> |
</form> |
<form name="UserForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.user.id.wrong" /> |
</field> |
</form> |
<form name="UserLoginsForm"> |
<field property="id" depends="required,long"> |
<msg name="required" key="ak.hostadmiral.core.user.id.wrong" /> |
<msg name="long" key="ak.hostadmiral.core.user.id.wrong" /> |
</field> |
</form> |
<form name="UserEditForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.user.id.wrong" /> |
</field> |
<field property="login" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.login.required" /> |
</field> |
<field property="boss" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.user.boss.id.wrong" /> |
</field> |
<field property="locale" depends="required"> |
<msg name="long" key="ak.hostadmiral.core.user.locale.wrong" /> |
</field> |
</form> |
<form name="UserPartEditForm"> |
<field property="id" depends="long,required"> |
<msg name="required" key="ak.hostadmiral.core.user.id.wrong" /> |
<msg name="long" key="ak.hostadmiral.core.user.id.wrong" /> |
</field> |
<field property="locale" depends="required"> |
<msg name="long" key="ak.hostadmiral.core.user.locale.wrong" /> |
</field> |
</form> |
<form name="SystemUserForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.user.system.edit.id.wrong" /> |
</field> |
</form> |
<form name="SystemUserEditForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.user.system.edit.id.wrong" /> |
</field> |
<field property="uid" depends="required,integer"> |
<msg name="required" key="ak.hostadmiral.core.user.system.edit.uid.wrong" /> |
<msg name="integer" key="ak.hostadmiral.core.user.system.edit.uid.wrong" /> |
</field> |
<field property="name" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.user.system.edit.name.required" /> |
</field> |
<field property="owner" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.user.system.edit.owner.wrong" /> |
</field> |
</form> |
<form name="InetDomainForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.domain.edit.id.wrong" /> |
</field> |
</form> |
<form name="InetDomainEditForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.domain.edit.id.wrong" /> |
</field> |
<field property="name" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.domain.edit.name.empty" /> |
</field> |
<field property="owner" depends="required,long"> |
<msg name="required" key="ak.hostadmiral.core.domain.edit.owner.wrong" /> |
<msg name="long" key="ak.hostadmiral.core.domain.edit.owner.wrong" /> |
</field> |
</form> |
<form name="MailboxForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.mailbox.edit.id.wrong" /> |
</field> |
</form> |
<form name="MailboxEditForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.mailbox.edit.id.wrong" /> |
</field> |
<field property="login" depends="required"> |
<msg name="required" key="ak.hostadmiral.core.mailbox.edit.login.empty" /> |
</field> |
<field property="domain" depends="required,long"> |
<msg name="required" key="ak.hostadmiral.core.mailbox.edit.domain.wrong" /> |
<msg name="long" key="ak.hostadmiral.core.mailbox.edit.domain.wrong" /> |
</field> |
<field property="owner" depends="required,long"> |
<msg name="required" key="ak.hostadmiral.core.mailbox.edit.owner.wrong" /> |
<msg name="long" key="ak.hostadmiral.core.mailbox.edit.owner.wrong" /> |
</field> |
<field property="systemuser" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.mailbox.edit.systemuser.wrong" /> |
</field> |
</form> |
<form name="MailAliasForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.mail.alias.edit.id.wrong" /> |
</field> |
</form> |
<form name="MailAliasEditForm"> |
<field property="id" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.mail.alias.edit.id.wrong" /> |
</field> |
<field property="domain" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.mail.alias.edit.domain.wrong" /> |
</field> |
<field property="owner" depends="long"> |
<msg name="long" key="ak.hostadmiral.core.mail.alias.edit.owner.wrong" /> |
</field> |
</form> |
</formset> |
</form-validation> |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/backpath.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-collections.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/xerces-2.4.0.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/xml-apis.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-lang.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-fileupload.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-validator.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-logging.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-beanutils.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/struts-1.1.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/xalan-2.4.0.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/pg74.213.jdbc3.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/jakarta-oro.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/cglib-full-2.0.1.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/dom4j-1.4.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/jta.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/log4j.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-digester.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-dbcp.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-pool.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/ehcache-0.7.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/commons-resources.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/hibernate2.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/lib/odmg-3.0.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/webapp/WEB-INF/hostadmiral-core.tld |
---|
0,0 → 1,202 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>hostadmiral-core</shortname> |
<uri>http://26th.net/hostadmiral/core</uri> |
<tag> |
<name>options</name> |
<tagclass>ak.hostadmiral.core.taglib.ModelObjectOptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>viewable</name> |
<tagclass>ak.hostadmiral.core.taglib.ViewableTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notViewable</name> |
<tagclass>ak.hostadmiral.core.taglib.NotViewableTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>editable</name> |
<tagclass>ak.hostadmiral.core.taglib.EditableTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEditable</name> |
<tagclass>ak.hostadmiral.core.taglib.NotEditableTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>deleteable</name> |
<tagclass>ak.hostadmiral.core.taglib.DeleteableTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notDeleteable</name> |
<tagclass>ak.hostadmiral.core.taglib.NotDeleteableTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>rights</name> |
<tagclass>ak.hostadmiral.core.taglib.RightsTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>noRights</name> |
<tagclass>ak.hostadmiral.core.taglib.NoRightsTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>ak.hostadmiral.core.taglib.WriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>default</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>language</name> |
<tagclass>ak.hostadmiral.core.taglib.LanguageTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
<tag> |
<name>country</name> |
<tagclass>ak.hostadmiral.core.taglib.CountryTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
<tag> |
<name>localeOptions</name> |
<tagclass>ak.hostadmiral.core.taglib.LocaleOptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/web.xml |
---|
0,0 → 1,132 |
<?xml version="1.0" encoding="ISO-8859-1"?> |
<!DOCTYPE web-app |
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" |
"http://java.sun.com/dtd/web-app_2_3.dtd"> |
<web-app> |
<filter> |
<filter-name>Profiler Filter</filter-name> |
<filter-class>ak.hostadmiral.core.servlet.ProfilerFilter</filter-class> |
</filter> |
<filter> |
<filter-name>Encoding Filter</filter-name> |
<filter-class>ak.hostadmiral.core.servlet.EncodingFilter</filter-class> |
</filter> |
<filter> |
<filter-name>Hibernate Filter</filter-name> |
<filter-class>ak.hostadmiral.core.servlet.HibernateFilter</filter-class> |
<init-param> |
<param-name>register</param-name> |
<param-value> |
ak.hostadmiral.core.model.UserManager; |
ak.hostadmiral.core.model.MailboxManager; |
ak.hostadmiral.core.model.MailAliasManager; |
ak.hostadmiral.core.model.MailAliasDestinationManager; |
ak.hostadmiral.core.model.SystemUserManager; |
ak.hostadmiral.core.model.InetDomainManager |
</param-value> |
</init-param> |
</filter> |
<filter> |
<filter-name>Login Filter</filter-name> |
<filter-class>ak.hostadmiral.core.servlet.LoginFilter</filter-class> |
<init-param> |
<param-name>loginUrl</param-name> |
<param-value>/system/login.do?backpath=</param-value> |
</init-param> |
<init-param> |
<param-name>passUrls</param-name> |
<param-value>/system/*</param-value> |
</init-param> |
</filter> |
<filter-mapping> |
<filter-name>Profiler Filter</filter-name> |
<url-pattern>/*</url-pattern> |
</filter-mapping> |
<filter-mapping> |
<filter-name>Encoding Filter</filter-name> |
<url-pattern>/*</url-pattern> |
</filter-mapping> |
<filter-mapping> |
<filter-name>Hibernate Filter</filter-name> |
<url-pattern>/*</url-pattern> |
</filter-mapping> |
<filter-mapping> |
<filter-name>Login Filter</filter-name> |
<url-pattern>/*</url-pattern> |
</filter-mapping> |
<!-- Standard Action Servlet Configuration (with debugging) --> |
<servlet> |
<servlet-name>action</servlet-name> |
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> |
<init-param> |
<param-name>config</param-name> |
<param-value>/WEB-INF/struts-config.xml</param-value> |
</init-param> |
<init-param> |
<param-name>debug</param-name> |
<param-value>2</param-value> |
</init-param> |
<init-param> |
<param-name>detail</param-name> |
<param-value>2</param-value> |
</init-param> |
<load-on-startup>2</load-on-startup> |
</servlet> |
<!-- Standard Action Servlet Mapping --> |
<servlet-mapping> |
<servlet-name>action</servlet-name> |
<url-pattern>*.do</url-pattern> |
</servlet-mapping> |
<!-- The Usual Welcome File List --> |
<welcome-file-list> |
<welcome-file>index.do</welcome-file> |
<welcome-file>index.html</welcome-file> |
</welcome-file-list> |
<!-- Struts Tag Library Descriptors --> |
<taglib> |
<taglib-uri>/tags/struts-bean</taglib-uri> |
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-html</taglib-uri> |
<taglib-location>/WEB-INF/struts-html.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-logic</taglib-uri> |
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-nested</taglib-uri> |
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-tiles</taglib-uri> |
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/ak/backpath</taglib-uri> |
<taglib-location>/WEB-INF/ak-backpath.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/ak/hostadmiral/core</taglib-uri> |
<taglib-location>/WEB-INF/hostadmiral-core.tld</taglib-location> |
</taglib> |
</web-app> |
/sun/hostadmiral/trunk/webapp/WEB-INF/ak-backpath.tld |
---|
0,0 → 1,535 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>backpath</shortname> |
<uri>http://26th.net/backpath</uri> |
<tag> |
<name>backlink</name> |
<tagclass>ak.backpath.taglib.BackwardLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>ak.backpath.taglib.ForwardLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>empty</name> |
<tagclass>ak.backpath.taglib.EmptyTag</tagclass> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>ak.backpath.taglib.NotEmptyTag</tagclass> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>current</name> |
<tagclass>ak.backpath.taglib.CurrentTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forward</name> |
<tagclass>ak.backpath.taglib.ForwardTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forwardStack</name> |
<tagclass>ak.backpath.taglib.ForwardStackTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>currentStack</name> |
<tagclass>ak.backpath.taglib.CurrentStackTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>backwardStack</name> |
<tagclass>ak.backpath.taglib.BackwardStackTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/struts-tiles.tld |
---|
0,0 → 1,344 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>Tiles Tag Library</shortname> |
<uri>http://jakarta.apache.org/struts/tags-tiles</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.tiles.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>component</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>definition</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>attribute</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerUrl</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>definition</name> |
<tagclass>org.apache.struts.taglib.tiles.DefinitionTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>extends</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.tiles.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>putList</name> |
<tagclass>org.apache.struts.taglib.tiles.PutListTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>add</name> |
<tagclass>org.apache.struts.taglib.tiles.AddTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.tiles.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>getAsString</name> |
<tagclass>org.apache.struts.taglib.tiles.GetAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>useAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.UseAttributeTag</tagclass> |
<teiclass>org.apache.struts.taglib.tiles.UseAttributeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>importAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.ImportAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>initComponentDefinitions</name> |
<tagclass>org.apache.struts.taglib.tiles.InitDefinitionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>file</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/struts-nested.tld |
---|
0,0 → 1,2870 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>nested</shortname> |
<uri>http://jakarta.apache.org/struts/tags-nested</uri> |
<tag> |
<name>nest</name> |
<tagclass>org.apache.struts.taglib.nested.NestedPropertyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>writeNesting</name> |
<tagclass>org.apache.struts.taglib.nested.NestedWriteNestingTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>root</name> |
<tagclass>org.apache.struts.taglib.nested.NestedRootTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedDefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedMessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedSizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedWriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedCheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedHiddenTag</tagclass> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedPasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedRadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedIterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.nested.logic.NestedIterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/struts-html.tld |
---|
0,0 → 1,2971 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>html</shortname> |
<uri>http://jakarta.apache.org/struts/tags-html</uri> |
<tag> |
<name>base</name> |
<tagclass>org.apache.struts.taglib.html.BaseTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>server</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>button</name> |
<tagclass>org.apache.struts.taglib.html.ButtonTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>cancel</name> |
<tagclass>org.apache.struts.taglib.html.CancelTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.html.CheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.html.ErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.html.FileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.html.FormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focusIndex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>frame</name> |
<tagclass>org.apache.struts.taglib.html.FrameTag</tagclass> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameborder</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>longdesc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginheight</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginwidth</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>noresize</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scrolling</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.html.HiddenTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>write</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>html</name> |
<tagclass>org.apache.struts.taglib.html.HtmlTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>xhtml</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.html.ImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.html.ImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>javascript</name> |
<tagclass>org.apache.struts.taglib.html.JavascriptValidatorTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>cdata</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>dynamicJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>staticJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>htmlComment</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.html.LinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.html.MessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.html.MultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>option</name> |
<tagclass>org.apache.struts.taglib.html.OptionTag</tagclass> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.html.OptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.html.OptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.html.PasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.html.RadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>idName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>reset</name> |
<tagclass>org.apache.struts.taglib.html.ResetTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>rewrite</name> |
<tagclass>org.apache.struts.taglib.html.RewriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.html.SelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.html.SubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.html.TextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.html.TextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>xhtml</name> |
<tagclass>org.apache.struts.taglib.html.XhtmlTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/struts-bean.tld |
---|
0,0 → 1,382 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>bean</shortname> |
<uri>http://jakarta.apache.org/struts/tags-bean</uri> |
<tag> |
<name>cookie</name> |
<tagclass>org.apache.struts.taglib.bean.CookieTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.CookieTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.bean.DefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>header</name> |
<tagclass>org.apache.struts.taglib.bean.HeaderTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.HeaderTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>include</name> |
<tagclass>org.apache.struts.taglib.bean.IncludeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>page</name> |
<tagclass>org.apache.struts.taglib.bean.PageTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.PageTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>parameter</name> |
<tagclass>org.apache.struts.taglib.bean.ParameterTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ParameterTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>resource</name> |
<tagclass>org.apache.struts.taglib.bean.ResourceTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>input</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.bean.SizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>struts</name> |
<tagclass>org.apache.struts.taglib.bean.StrutsTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formBean</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>mapping</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.bean.WriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/validator-rules.xml |
---|
0,0 → 1,988 |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<!-- |
This file contains the default Struts Validator pluggable validator |
definitions. It should be placed somewhere under /WEB-INF and |
referenced in the struts-config.xml under the plug-in element |
for the ValidatorPlugIn. |
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> |
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml, |
/WEB-INF/validation.xml"/> |
</plug-in> |
These are the default error messages associated with |
each validator defined in this file. They should be |
added to your projects ApplicationResources.properties |
file or you can associate new ones by modifying the |
pluggable validators msg attributes in this file. |
# Struts Validator Error Messages |
errors.required={0} is required. |
errors.minlength={0} can not be less than {1} characters. |
errors.maxlength={0} can not be greater than {1} characters. |
errors.invalid={0} is invalid. |
errors.byte={0} must be a byte. |
errors.short={0} must be a short. |
errors.integer={0} must be an integer. |
errors.long={0} must be a long. |
errors.float={0} must be a float. |
errors.double={0} must be a double. |
errors.date={0} is not a date. |
errors.range={0} is not in the range {1} through {2}. |
errors.creditcard={0} is an invalid credit card number. |
errors.email={0} is an invalid e-mail address. |
--> |
<form-validation> |
<global> |
<validator name="required" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequired" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
<javascript><![CDATA[ |
function validateRequired(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRequired = new required(); |
for (x in oRequired) { |
var field = form[oRequired[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'file' || |
field.type == 'select-one' || |
field.type == 'radio' || |
field.type == 'password') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value == '') { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oRequired[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="requiredif" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequiredIf" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
org.apache.commons.validator.Validator, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
</validator> |
<validator name="minlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMinLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.minlength"> |
<javascript><![CDATA[ |
function validateMinLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMinLength = new minlength(); |
for (x in oMinLength) { |
if (form[oMinLength[x][0]].type == 'text' || |
form[oMinLength[x][0]].type == 'textarea') { |
var iMin = parseInt(oMinLength[x][2]("minlength")); |
if (form[oMinLength[x][0]].value.length < iMin) { |
if (i == 0) { |
focusField = form[oMinLength[x][0]]; |
} |
fields[i++] = oMinLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="maxlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMaxLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.maxlength"> |
<javascript><![CDATA[ |
function validateMaxLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMaxLength = new maxlength(); |
for (x in oMaxLength) { |
if (form[oMaxLength[x][0]].type == 'text' || |
form[oMaxLength[x][0]].type == 'textarea') { |
var iMax = parseInt(oMaxLength[x][2]("maxlength")); |
if (form[oMaxLength[x][0]].value.length > iMax) { |
if (i == 0) { |
focusField = form[oMaxLength[x][0]]; |
} |
fields[i++] = oMaxLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="mask" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMask" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.invalid"> |
<javascript><![CDATA[ |
function validateMask(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMasked = new mask(); |
for (x in oMasked) { |
if ((form[oMasked[x][0]].type == 'text' || |
form[oMasked[x][0]].type == 'textarea' || |
form[oMasked[x][0]].type == 'password') && |
(form[oMasked[x][0]].value.length > 0)) { |
if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) { |
if (i == 0) { |
focusField = form[oMasked[x][0]]; |
} |
fields[i++] = oMasked[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function matchPattern(value, mask) { |
var bMatched = mask.exec(value); |
if (!bMatched) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="byte" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateByte" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.byte" |
jsFunctionName="ByteValidations"> |
<javascript><![CDATA[ |
function validateByte(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oByte = new ByteValidations(); |
for (x in oByte) { |
var field = form[oByte[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oByte[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="short" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateShort" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.short" |
jsFunctionName="ShortValidations"> |
<javascript><![CDATA[ |
function validateShort(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oShort = new ShortValidations(); |
for (x in oShort) { |
var field = form[oShort[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oShort[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="integer" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateInteger" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.integer" |
jsFunctionName="IntegerValidations"> |
<javascript><![CDATA[ |
function validateInteger(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oInteger = new IntegerValidations(); |
for (x in oInteger) { |
var field = form[oInteger[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
if (!isAllDigits(value)) { |
bValid = false; |
} else { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oInteger[x][1]; |
bValid = false; |
} |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isAllDigits(argvalue) { |
argvalue = argvalue.toString(); |
var validChars = "0123456789"; |
var startFrom = 0; |
if (argvalue.substring(0, 2) == "0x") { |
validChars = "0123456789abcdefABCDEF"; |
startFrom = 2; |
} else if (argvalue.charAt(0) == "0") { |
validChars = "01234567"; |
startFrom = 1; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="long" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateLong" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.long"/> |
<validator name="float" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloat" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.float" |
jsFunctionName="FloatValidations"> |
<javascript><![CDATA[ |
function validateFloat(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oFloat = new FloatValidations(); |
for (x in oFloat) { |
var field = form[oFloat[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseFloat(value); |
if (isNaN(iValue)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oFloat[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="double" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDouble" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.double"/> |
<validator name="date" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDate" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.date" |
jsFunctionName="DateValidations"> |
<javascript><![CDATA[ |
function validateDate(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oDate = new DateValidations(); |
for (x in oDate) { |
var value = form[oDate[x][0]].value; |
var datePattern = oDate[x][2]("datePatternStrict"); |
if ((form[oDate[x][0]].type == 'text' || |
form[oDate[x][0]].type == 'textarea') && |
(value.length > 0) && |
(datePattern.length > 0)) { |
var MONTH = "MM"; |
var DAY = "dd"; |
var YEAR = "yyyy"; |
var orderMonth = datePattern.indexOf(MONTH); |
var orderDay = datePattern.indexOf(DAY); |
var orderYear = datePattern.indexOf(YEAR); |
if ((orderDay < orderYear && orderDay > orderMonth)) { |
var iDelim1 = orderMonth + MONTH.length; |
var iDelim2 = orderDay + DAY.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderDay && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderDay) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[2], matched[1], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth < orderYear && orderMonth > orderDay)) { |
var iDelim1 = orderDay + DAY.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[1], matched[2], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth > orderYear && orderMonth < orderDay)) { |
var iDelim1 = orderYear + YEAR.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); |
} else if (iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[3], matched[2], matched[1])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isValidDate(day, month, year) { |
if (month < 1 || month > 12) { |
return false; |
} |
if (day < 1 || day > 31) { |
return false; |
} |
if ((month == 4 || month == 6 || month == 9 || month == 11) && |
(day == 31)) { |
return false; |
} |
if (month == 2) { |
var leap = (year % 4 == 0 && |
(year % 100 != 0 || year % 400 == 0)); |
if (day>29 || (day == 29 && !leap)) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<!-- range is deprecated use intRange instead --> |
<validator name="range" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateRange(form) { |
return validateIntRange(form); |
}]]> |
</javascript> |
</validator> |
<validator name="intRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateIntRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new intRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var iMin = parseInt(oRange[x][2]("min")); |
var iMax = parseInt(oRange[x][2]("max")); |
var iValue = parseInt(form[oRange[x][0]].value); |
if (!(iValue >= iMin && iValue <= iMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="floatRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloatRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="float" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateFloatRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new floatRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var fMin = parseFloat(oRange[x][2]("min")); |
var fMax = parseFloat(oRange[x][2]("max")); |
var fValue = parseFloat(form[oRange[x][0]].value); |
if (!(fValue >= fMin && fValue <= fMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="creditCard" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateCreditCard" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.creditcard"> |
<javascript><![CDATA[ |
function validateCreditCard(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oCreditCard = new creditCard(); |
for (x in oCreditCard) { |
if ((form[oCreditCard[x][0]].type == 'text' || |
form[oCreditCard[x][0]].type == 'textarea') && |
(form[oCreditCard[x][0]].value.length > 0)) { |
if (!luhnCheck(form[oCreditCard[x][0]].value)) { |
if (i == 0) { |
focusField = form[oCreditCard[x][0]]; |
} |
fields[i++] = oCreditCard[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl |
*/ |
function luhnCheck(cardNumber) { |
if (isLuhnNum(cardNumber)) { |
var no_digit = cardNumber.length; |
var oddoeven = no_digit & 1; |
var sum = 0; |
for (var count = 0; count < no_digit; count++) { |
var digit = parseInt(cardNumber.charAt(count)); |
if (!((count & 1) ^ oddoeven)) { |
digit *= 2; |
if (digit > 9) digit -= 9; |
}; |
sum += digit; |
}; |
if (sum == 0) return false; |
if (sum % 10 == 0) return true; |
}; |
return false; |
} |
function isLuhnNum(argvalue) { |
argvalue = argvalue.toString(); |
if (argvalue.length == 0) { |
return false; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if ((argvalue.substring(n, n+1) < "0") || |
(argvalue.substring(n,n+1) > "9")) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="email" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateEmail" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.email"> |
<javascript><![CDATA[ |
function validateEmail(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oEmail = new email(); |
for (x in oEmail) { |
if ((form[oEmail[x][0]].type == 'text' || |
form[oEmail[x][0]].type == 'textarea') && |
(form[oEmail[x][0]].value.length > 0)) { |
if (!checkEmail(form[oEmail[x][0]].value)) { |
if (i == 0) { |
focusField = form[oEmail[x][0]]; |
} |
fields[i++] = oEmail[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), |
* http://javascript.internet.com |
*/ |
function checkEmail(emailStr) { |
if (emailStr.length == 0) { |
return true; |
} |
var emailPat=/^(.+)@(.+)$/; |
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; |
var validChars="\[^\\s" + specialChars + "\]"; |
var quotedUser="(\"[^\"]*\")"; |
var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; |
var atom=validChars + '+'; |
var word="(" + atom + "|" + quotedUser + ")"; |
var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); |
var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); |
var matchArray=emailStr.match(emailPat); |
if (matchArray == null) { |
return false; |
} |
var user=matchArray[1]; |
var domain=matchArray[2]; |
if (user.match(userPat) == null) { |
return false; |
} |
var IPArray = domain.match(ipDomainPat); |
if (IPArray != null) { |
for (var i = 1; i <= 4; i++) { |
if (IPArray[i] > 255) { |
return false; |
} |
} |
return true; |
} |
var domainArray=domain.match(domainPat); |
if (domainArray == null) { |
return false; |
} |
var atomPat=new RegExp(atom,"g"); |
var domArr=domain.match(atomPat); |
var len=domArr.length; |
if ((domArr[domArr.length-1].length < 2) || |
(domArr[domArr.length-1].length > 3)) { |
return false; |
} |
if (len < 2) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
</global> |
</form-validation> |
/sun/hostadmiral/trunk/webapp/WEB-INF/tiles-defs.xml |
---|
0,0 → 1,42 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> |
<!-- |
This is a blank Tiles definition file with a commented example. |
--> |
<tiles-definitions> |
<!-- sample tiles definitions |
<definition name=".mainLayout" path="/common/layouts/classicLayout.jsp"> |
<put name="title" value="Sample Page Title" /> |
<put name="header" value="/common/header.jsp" /> |
<put name="menu" value=".mainMenu" /> |
<put name="footer" value="/common/footer.jsp" /> |
<put name="body" value=".portal.body" /> |
</definition> |
<definition name=".mainMenu" path="/common/layouts/vboxLayout.jsp" > |
<putList name="list" > |
<add value=".menu.links" /> |
<add value=".menu.taglib.references" /> |
<add value=".menu.printer.friendly" /> |
<add value=".menu.old.documents" /> |
</putList> |
</definition> |
<definition name="aPage" extends=".mainLayout"> |
<put name="title" value="Another Title" /> |
<put name="body" value=".aPage.body" /> |
</definition> |
end samples --> |
<definition name="${YOUR_DEFINITION_HERE}"> |
</definition> |
</tiles-definitions> |
/sun/hostadmiral/trunk/webapp/WEB-INF/struts-template.tld |
---|
0,0 → 1,73 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>template</shortname> |
<uri>http://jakarta.apache.org/struts/tags-template</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.template.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.template.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.template.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF/struts-logic.tld |
---|
0,0 → 1,642 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>logic</shortname> |
<uri>http://jakarta.apache.org/struts/tags-logic</uri> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.logic.EmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.logic.EqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forward</name> |
<tagclass>org.apache.struts.taglib.logic.ForwardTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.logic.IterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.logic.LessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.logic.LessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.logic.MatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.logic.NotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.logic.NotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.logic.NotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.logic.NotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.logic.PresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>redirect</name> |
<tagclass>org.apache.struts.taglib.logic.RedirectTag</tagclass> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/hostadmiral/trunk/webapp/WEB-INF |
---|
Property changes: |
Added: svn:ignore |
+classes |
/sun/hostadmiral/trunk/webapp/domain/view.jsp |
---|
0,0 → 1,64 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.domain.view.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.domain.view.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.view.name" /></th> |
<td><bean:write name="domain" property="name" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.view.owner" /></th> |
<td><bean:write name="domain" property="owner.login" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.view.enabled" /></th> |
<td> |
<logic:equal name="domain" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.domain.view.enabled.true" /> |
</logic:equal> |
<logic:notEqual name="domain" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.domain.view.enabled.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.view.comment" /></th> |
<td><bean:write name="domain" property="comment" /> </td> |
</tr> |
<tr> |
<td colspan=2> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.domain.view.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/domain/list.jsp |
---|
0,0 → 1,82 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.domain.list.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.domain.list.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.list.name" /></th> |
<th><bean:message key="ak.hostadmiral.page.domain.list.owner" /></th> |
<th><bean:message key="ak.hostadmiral.page.domain.list.enabled" /></th> |
<th> </th> |
<th> </th> |
</tr> |
<logic:iterate name="domains" id="domain"> |
<tr> |
<td><bean:write name="domain" property="name" /></td> |
<td><bean:write name="domain" property="owner.login" /></td> |
<td> |
<logic:equal name="domain" property="enabled" value="true">x</logic:equal> |
<logic:notEqual name="domain" property="enabled" value="true"> </logic:notEqual> |
</td> |
<td> |
<core:editable name="domain"> |
<backpath:link action="/domain/edit" paramId="id" paramName="domain" paramProperty="id"><bean:message key="ak.hostadmiral.page.domain.list.edit" /></backpath:link> |
</core:editable> |
<core:notEditable name="domain"> |
<core:viewable name="domain"> |
<backpath:link action="/domain/edit" paramId="id" paramName="domain" paramProperty="id"><bean:message key="ak.hostadmiral.page.domain.list.view" /></backpath:link> |
</core:viewable> |
<core:notViewable name="domain"> |
|
</core:notViewable> |
</core:notEditable> |
</td> |
<td> |
<core:deleteable name="domain"> |
<backpath:link action="/domain/delete" paramId="id" paramName="domain" paramProperty="id"><bean:message key="ak.hostadmiral.page.domain.list.delete" /></backpath:link> |
</core:deleteable> |
<core:notDeleteable name="domain"> |
|
</core:notDeleteable> |
</td> |
</tr> |
</logic:iterate> |
</table> |
<logic:equal name="allowedToCreate" value="true"> |
<backpath:link action="/domain/edit"><bean:message key="ak.hostadmiral.page.domain.list.add" /></backpath:link> |
</logic:equal> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.domain.list.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/domain/edit.jsp |
---|
0,0 → 1,69 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.domain.edit.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.domain.edit.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/domain/submit"> |
<backpath:current /> |
<html:hidden property="id" /> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.edit.name" /></th> |
<td><html:text property="name" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.edit.owner" /></th> |
<td> |
<html:select property="owner"> |
<html:option value="" key="ak.hostadmiral.page.domain.edit.owner.empty"/> |
<html:options collection="users" property="id" labelProperty="login" /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.edit.enabled" /></th> |
<td><html:checkbox property="enabled" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.domain.edit.comment" /></th> |
<td><html:textarea property="comment" /></td> |
</tr> |
<tr> |
<td colspan=2> |
<html:submit><bean:message key="ak.hostadmiral.page.domain.edit.submit" /></html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.domain.edit.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/failedLogins.jsp |
---|
0,0 → 1,62 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.failedLogins.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.failedLogins.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.failedLogins.login" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.failedLogins.user.exists" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.failedLogins.time" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.failedLogins.success" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.failedLogins.ip" /></th> |
</tr> |
<logic:iterate name="logins" id="l"> |
<tr> |
<td><bean:write name="l" property="login" /></td> |
<td> |
<logic:present name="l" property="user">x</logic:present> |
<logic:notPresent name="l" property="user"> </logic:notPresent> |
</td> |
<td><bean:write name="l" property="loginTime" /></td> |
<td> |
<logic:equal name="l" property="success" value="true">x</logic:equal> |
<logic:notEqual name="l" property="success" value="true"> </logic:notEqual> |
</td> |
<td><bean:write name="l" property="ip" /></td> |
</tr> |
</logic:iterate> |
</table> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.failedLogins.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/edit.jsp |
---|
0,0 → 1,105 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.edit.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.edit.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/user/submit"> |
<backpath:current /> |
<html:hidden property="id" /> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.login" /></th> |
<td><html:text property="login" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.password" /></th> |
<td><html:password property="password" redisplay="false" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.password_again" /></th> |
<td><html:password property="password2" redisplay="false" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.boss" /></th> |
<td> |
<html:select property="boss"> |
<html:option value="" key="ak.hostadmiral.page.user.edit.boss.empty"/> |
<core:options collection="users" property="id" /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.superuser" /></th> |
<td> |
<core:rights name="u" method="mayChangeSuperuser"> |
<html:checkbox property="superuser" /> |
</core:rights> |
<core:noRights name="u" method="mayChangeSuperuser"> |
<logic:equal name="u" property="superuser" value="true"> |
<bean:message key="ak.hostadmiral.page.user.edit.superuser.true" /> |
</logic:equal> |
<logic:notEqual name="u" property="superuser" value="true"> |
<bean:message key="ak.hostadmiral.page.user.edit.superuser.false" /> |
</logic:notEqual> |
</core:noRights> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.locale" /></th> |
<td> |
<html:select property="locale"> |
<core:localeOptions /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.enabled" /></th> |
<td><html:checkbox property="enabled" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.edit.comment" /></th> |
<td><html:textarea property="comment" /></td> |
</tr> |
<tr> |
<td colspan=2> |
<html:submit><bean:message key="ak.hostadmiral.page.user.edit.submit" /></html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.edit.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
<p> |
<backpath:link action="/user/logins" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.edit.logins" /></backpath:link> |
</p> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/password/change.jsp |
---|
0,0 → 1,72 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.password.change.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.password.change.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/user/password/submit" focus="oldpassword"> |
<backpath:current/> |
<table border=1> |
<tr> |
<th> |
<bean:message key="ak.hostadmiral.page.user.password.change.old_password" /> |
</th> |
<td> |
<html:password property="oldpassword" size="16" redisplay="false" /> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="ak.hostadmiral.page.user.password.change.new_password" /> |
</th> |
<td> |
<html:password property="password" size="16" redisplay="false" /> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="ak.hostadmiral.page.user.password.change.new_password_again" /> |
</th> |
<td> |
<html:password property="password2" size="16" redisplay="false" /> |
</td> |
</tr> |
<tr> |
<td colspan=2> |
<html:submit> |
<bean:message key="ak.hostadmiral.page.user.password.change.submit" /> |
</html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.password.change.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/system/edit.jsp |
---|
0,0 → 1,73 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.system.edit.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.system.edit.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/user/system/submit"> |
<backpath:current /> |
<html:hidden property="id" /> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.edit.uid" /></th> |
<td><html:text property="uid" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.edit.name" /></th> |
<td><html:text property="name" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.edit.owner" /></th> |
<td> |
<html:select property="owner"> |
<html:option value="" key="ak.hostadmiral.page.user.system.edit.owner.empty"/> |
<html:options collection="users" property="id" labelProperty="login" /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.edit.enabled" /></th> |
<td><html:checkbox property="enabled" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.edit.comment" /></th> |
<td><html:textarea property="comment" /></td> |
</tr> |
<tr> |
<td colspan=2> |
<html:submit><bean:message key="ak.hostadmiral.page.user.system.edit.submit" /></html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.system.edit.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/system/view.jsp |
---|
0,0 → 1,75 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.system.view.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.system.view.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.view.uid" /></th> |
<td><bean:write name="u" property="uid" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.view.name" /></th> |
<td><bean:write name="u" property="name" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.view.owner" /></th> |
<td> |
<logic:present name="u" property="owner"> |
<bean:write name="u" property="owner.login" /> |
</logic:present> |
<logic:notPresent name="u" property="owner"> |
<bean:message key="ak.hostadmiral.page.user.system.view.owner.empty" /> |
</logic:notPresent> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.view.enabled" /></th> |
<td> |
<logic:equal name="u" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.user.system.view.enabled.true" /> |
</logic:equal> |
<logic:notEqual name="u" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.user.system.view.enabled.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.view.comment" /></th> |
<td><bean:write name="u" property="comment" /> </td> |
</tr> |
<tr> |
<td colspan=2> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.system.view.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/system/list.jsp |
---|
0,0 → 1,91 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.system.list.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.system.list.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.system.list.uid" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.system.list.name" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.system.list.owner" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.system.list.enabled" /></th> |
<th> </th> |
<th> </th> |
</tr> |
<logic:iterate name="users" id="u"> |
<tr> |
<td><bean:write name="u" property="uid" /></td> |
<td><bean:write name="u" property="name" /></td> |
<td> |
<logic:present name="u" property="owner"> |
<bean:write name="u" property="owner.login" /> |
</logic:present> |
<logic:notPresent name="u" property="owner"> |
|
</logic:notPresent> |
</td> |
<td> |
<logic:equal name="u" property="enabled" value="true">x</logic:equal> |
<logic:notEqual name="u" property="enabled" value="true"> </logic:notEqual> |
</td> |
<td> |
<core:editable name="u"> |
<backpath:link action="/user/system/edit" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.system.list.edit" /></backpath:link> |
</core:editable> |
<core:notEditable name="u"> |
<core:viewable name="u"> |
<backpath:link action="/user/system/edit" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.system.list.view" /></backpath:link> |
</core:viewable> |
<core:notViewable name="u"> |
|
</core:notViewable> |
</core:notEditable> |
</td> |
<td> |
<core:deleteable name="u"> |
<backpath:link action="/user/system/delete" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.system.list.delete" /></backpath:link> |
</core:deleteable> |
<core:notDeleteable name="u"> |
|
</core:notDeleteable> |
</td> |
</tr> |
</logic:iterate> |
</table> |
<logic:equal name="allowedToCreate" value="true"> |
<backpath:link action="/user/system/edit"><bean:message key="ak.hostadmiral.page.user.system.list.add" /></backpath:link> |
</logic:equal> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.system.list.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/view.jsp |
---|
0,0 → 1,86 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.view.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.view.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.view.login" /></th> |
<td><bean:write name="u" property="login" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.view.boss" /></th> |
<td> |
<logic:present name="u" property="boss"> |
<bean:write name="u" property="boss.login" /> |
</logic:present> |
<logic:notPresent name="u" property="boss"> |
<bean:message key="ak.hostadmiral.page.user.view.boss.empty" /> |
</logic:notPresent> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.view.superuser" /></th> |
<td> |
<logic:equal name="u" property="superuser" value="true"> |
<bean:message key="ak.hostadmiral.page.user.view.superuser.true" /> |
</logic:equal> |
<logic:notEqual name="u" property="superuser" value="true"> |
<bean:message key="ak.hostadmiral.page.user.view.superuser.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.view.enabled" /></th> |
<td> |
<logic:equal name="u" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.user.view.enabled.true" /> |
</logic:equal> |
<logic:notEqual name="u" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.user.view.enabled.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.view.comment" /></th> |
<td><bean:write name="u" property="comment" /> </td> |
</tr> |
<tr> |
<td colspan=2> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.view.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
<p> |
<backpath:link action="/user/logins" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.view.logins" /></backpath:link> |
</p> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/list.jsp |
---|
0,0 → 1,98 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.list.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.list.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.list.login" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.list.boss" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.list.superuser" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.list.enabled" /></th> |
<th> </th> |
<th> </th> |
</tr> |
<logic:iterate name="users" id="u"> |
<tr> |
<td><bean:write name="u" property="login" /></td> |
<td> |
<logic:present name="u" property="boss"> |
<bean:write name="u" property="boss.login" /> |
</logic:present> |
<logic:notPresent name="u" property="boss"> |
|
</logic:notPresent> |
</td> |
<td> |
<logic:equal name="u" property="superuser" value="true">x</logic:equal> |
<logic:notEqual name="u" property="superuser" value="true"> </logic:notEqual> |
</td> |
<td> |
<logic:equal name="u" property="enabled" value="true">x</logic:equal> |
<logic:notEqual name="u" property="enabled" value="true"> </logic:notEqual> |
</td> |
<td> |
<core:editable name="u"> |
<backpath:link action="/user/edit" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.list.edit" /></backpath:link> |
</core:editable> |
<core:notEditable name="u"> |
<core:rights name="u" method="partEditableBy"> |
<backpath:link action="/user/partedit" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.list.partedit" /></backpath:link> |
</core:rights> |
<core:noRights name="u" method="partEditableBy"> |
<core:viewable name="u"> |
<backpath:link action="/user/edit" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.list.view" /></backpath:link> |
</core:viewable> |
<core:notViewable name="u"> |
|
</core:notViewable> |
</core:noRights> |
</core:notEditable> |
</td> |
<td> |
<core:deleteable name="u"> |
<backpath:link action="/user/deleting" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.list.delete" /></backpath:link> |
</core:deleteable> |
<core:notDeleteable name="u"> |
|
</core:notDeleteable> |
</td> |
</tr> |
</logic:iterate> |
</table> |
<backpath:link action="/user/edit"><bean:message key="ak.hostadmiral.page.user.list.add" /></backpath:link> |
<br> |
<backpath:link action="/user/failedLogins"><bean:message key="ak.hostadmiral.page.user.list.logins.failed" /></backpath:link> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.list.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/logins.jsp |
---|
0,0 → 1,60 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.logins.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.logins.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<p> |
<bean:message key="ak.hostadmiral.page.user.logins.login" /> |
<strong><bean:write name="u" property="login" /></strong> |
</p> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.logins.time" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.logins.success" /></th> |
<th><bean:message key="ak.hostadmiral.page.user.logins.ip" /></th> |
</tr> |
<logic:iterate name="logins" id="l"> |
<tr> |
<td><bean:write name="l" property="loginTime" /></td> |
<td> |
<logic:equal name="l" property="success" value="true">x</logic:equal> |
<logic:notEqual name="l" property="success" value="true"> </logic:notEqual> |
</td> |
<td><bean:write name="l" property="ip" /></td> |
</tr> |
</logic:iterate> |
</table> |
<br> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.logins.back" /></backpath:backlink> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/user/partedit.jsp |
---|
0,0 → 1,101 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title><bean:message key="ak.hostadmiral.page.user.partedit.title" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:message key="ak.hostadmiral.page.user.partedit.title" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error"><bean:message key="ak.hostadmiral.page.general.errors" />: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<html:form action="/user/partsubmit"> |
<backpath:current /> |
<html:hidden property="id" /> |
<table border=1> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.partedit.login" /></th> |
<td><bean:write name="u" property="login" /></td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.partedit.boss" /></th> |
<td> |
<logic:present name="u" property="boss"> |
<bean:write name="u" property="boss.login" /> |
</logic:present> |
<logic:notPresent name="u" property="boss"> |
<bean:message key="ak.hostadmiral.page.user.partedit.boss.empty" /> |
</logic:notPresent> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.partedit.superuser" /></th> |
<td> |
<logic:equal name="u" property="superuser" value="true"> |
<bean:message key="ak.hostadmiral.page.user.partedit.superuser.true" /> |
</logic:equal> |
<logic:notEqual name="u" property="superuser" value="true"> |
<bean:message key="ak.hostadmiral.page.user.partedit.superuser.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.partedit.locale" /></th> |
<td> |
<html:select property="locale"> |
<core:localeOptions /> |
</html:select> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.partedit.enabled" /></th> |
<td> |
<logic:equal name="u" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.user.partedit.enabled.true" /> |
</logic:equal> |
<logic:notEqual name="u" property="enabled" value="true"> |
<bean:message key="ak.hostadmiral.page.user.partedit.enabled.false" /> |
</logic:notEqual> |
</td> |
</tr> |
<tr> |
<th><bean:message key="ak.hostadmiral.page.user.partedit.comment" /></th> |
<td><bean:write name="u" property="comment" /> </td> |
</tr> |
<tr> |
<td colspan=2> |
<html:submit><bean:message key="ak.hostadmiral.page.user.partedit.submit" /></html:submit> |
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.partedit.back" /></backpath:backlink> |
</td> |
</tr> |
</table> |
</html:form> |
<p> |
<backpath:link action="/user/logins" paramId="id" paramName="u" paramProperty="id"><bean:message key="ak.hostadmiral.page.user.partedit.logins" /></backpath:link> |
</p> |
</body> |
</html> |
/sun/hostadmiral/trunk/webapp/style/general.css |
---|
0,0 → 1,0 |
.error {color:red;} |
/sun/hostadmiral/trunk/webapp/index.do |
---|
--- hostadmiral/trunk/bin/dos2unix.sh (nonexistent) |
+++ hostadmiral/trunk/bin/dos2unix.sh (revision 958) |
@@ -0,0 +1,4 @@ |
+#!/bin/sh |
+ |
+find . -not -path '*/.svn/*' \( -name '*.java' -or -name '*.jsp' -or -name '*.tld' -or -name '*.xml' -or -name '*.sample' \) -exec sh -c 'tr -d "\r" < {} > tmp; mv tmp {}' \; |
+ |
/hostadmiral/trunk/bin/dos2unix.sh |
---|
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/sun/hostadmiral/trunk/bin/find_fixme.sh |
---|
0,0 → 1,4 |
#!/bin/sh |
find . -not -path '*/.svn/*' -type f -exec grep -HE '[F]IXME' {} \; |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/sun/hostadmiral/trunk/sql/00.tables.sql |
---|
0,0 → 1,140 |
-- |
-- hostadmiral sql tables |
-- |
-- FIXME: which values has boolean in hibernate - '1':' ' or '1':'0'? |
create sequence hibernate_sequence; |
-- an user is allowed to: |
-- see/use an user if he is the 'boss' or is the same user |
-- modify password - as above |
-- modify login - only if he is the 'boss', not of his own, and only inside some name rules (e.g. name@domain) |
-- 'superuser' is allowed to do anything with all objects, but cannot delete himself or modify own |
-- 'superuser' flag (to guarantee at least one superuser exists in the system) |
create table users |
( |
id integer not null, |
login varchar(255) not null, |
password varchar(255) not null, |
boss integer, |
superuser char(1) default ' ' check (superuser = '1' or superuser = ' '), |
locale varchar(5) default 'en', -- language_country |
enabled char(1) default '1' check (enabled = '1' or enabled = ' '), |
comment text, |
mod_stamp timestamp, |
mod_user integer, |
constraint users_prim primary key (id), |
constraint users_login unique(login), |
constraint users_boss foreign key (boss) references users(id) |
); |
-- login tries. "usr" is set if the user is found only |
create table userlogins |
( |
id integer not null, |
usr integer, |
login varchar(255) not null, |
logintime timestamp not null, |
success char(1) default '0' check (success = '1' or success = '0'), |
ip inet not null, |
constraint userlogins_prim primary key (id), |
constraint userlogins_user foreign key (usr) references users(id) |
); |
-- default user admin:admin |
insert into users (id, login, password, superuser) values (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', '1'); |
select nextval('hibernate_sequence'); -- skip id of the default user |
-- an user is allowed to see and use a system user if he is the 'owner' or the system user has no owner (null) |
create table systemusers |
( |
id integer not null, |
uid integer not null, |
name varchar(255) not null, |
owner integer, |
enabled char(1) default '1' check (enabled = '1' or enabled = ' '), |
comment text, |
mod_stamp timestamp, |
mod_user integer, |
constraint systemusers_prim primary key (id), |
constraint systemusers_uid unique(uid), |
constraint systemusers_name unique(name), |
constraint systemusers_owner foreign key (owner) references users(id) |
); |
create table domains |
( |
id integer not null, |
name varchar(255) not null, |
owner integer not null, |
enabled char(1) default '1' check (enabled = '1' or enabled = ' '), |
comment text, |
mod_stamp timestamp, |
mod_user integer, |
constraint domains_prim primary key (id), |
constraint domains_name unique(name), |
constraint domains_owner foreign key (owner) references users(id) |
); |
-- name of mailbox = login + '@' + domain, e.g. user@example.com |
-- FIXME: make a possibility to use global unique mailboxes |
create table mailboxes |
( |
id integer not null, |
login varchar(255) not null, |
password varchar(255), -- if null, then owner's password is used |
domain integer not null, |
owner integer not null, |
virusCheck char(1) default '1' check (virusCheck = '1' or virusCheck = ' '), |
spamCheck char(1) default '1' check (spamCheck = '1' or spamCheck = ' '), |
systemuser integer, |
enabled char(1) default '1' check (enabled = '1' or enabled = ' '), |
comment text, |
mod_stamp timestamp, |
mod_user integer, |
constraint mailboxes_prim primary key (id), |
constraint mailboxes_name unique(login, domain), |
constraint mailboxes_domain foreign key (domain) references domains(id), |
constraint mailboxes_owner foreign key (owner) references users(id), |
constraint mailboxes_systemuser foreign key (systemuser) references systemusers(id) |
); |
-- email address of alias = address + '@' + domain, e.g. user@example.com |
create table mailaliases |
( |
id integer not null, |
address varchar(255) not null, |
domain integer not null, |
owner integer not null, |
enabled char(1) default '1' check (enabled = '1' or enabled = ' '), |
comment text, |
mod_stamp timestamp, |
mod_user integer, |
constraint mailaliases_prim primary key (id), |
constraint mailaliases_name unique(address, domain), |
constraint mailaliases_domain foreign key (domain) references domains(id), |
constraint mailaliases_owner foreign key (owner) references users(id) |
); |
create table mailaliasdests |
( |
id integer not null, |
alias integer not null, |
mailbox integer, |
email varchar(255), |
enabled char(1) default '1' check (enabled = '1' or enabled = ' '), |
comment text, |
mod_stamp timestamp, |
mod_user integer, |
constraint mailaliasdests_prim primary key (id), |
constraint mailaliasdests_dest check ((mailbox notnull) or (email notnull)), |
constraint mailaliasdests_mailbox foreign key (mailbox) references mailboxes(id), |
constraint mailaliasdests_email check ((email isnull) or (char_length(email) > 0)) |
); |
/sun/hostadmiral/trunk/conf/hibernate.cfg.xml.sample |
---|
0,0 → 1,19 |
<?xml version='1.0' encoding='utf-8'?> |
<!DOCTYPE hibernate-configuration PUBLIC |
"-//Hibernate/Hibernate Configuration DTD 2.0//EN" |
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> |
<hibernate-configuration> |
<session-factory |
name="java:comp/env/hibernate/SessionFactory"> |
<!-- properties --> |
<property name="connection.driver_class">org.postgresql.Driver</property> |
<property name="connection.username">user</property> |
<property name="connection.password">password</property> |
<property name="connection.url">jdbc:postgresql://localhost/hostadmiral</property> |
<property name="dialect">net.sf.hibernate.dialect.PostgreSQLDialect</property> |
<property name="show_sql">false</property> |
</session-factory> |
</hibernate-configuration> |
/sun/hostadmiral/trunk/conf/log4j.properties |
---|
0,0 → 1,10 |
log4j.rootLogger=warn, stdout |
log4j.appender.stdout=org.apache.log4j.ConsoleAppender |
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout |
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n |
log4j.logger.ak=debug |
log4j.logger.ak.hostadmiral=debug |
log4j.logger.net.sf.hibernate=error |
/sun/hostadmiral/trunk/conf |
---|
Property changes: |
Added: svn:ignore |
+hibernate.cfg.xml |
/sun/hostadmiral/trunk/hostadmiral.xml |
---|
0,0 → 1,6 |
<Context |
path="/hostadmiral" |
docBase="/home/common/prog/hostadmiral/webapp" |
debug="0" |
privileged="false" |
/> |
/sun/hostadmiral/trunk/lib/ant/commons-logging.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/lib/ant/log4j.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/lib/ant/xdoclet-1.2.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/lib/ant/xdoclet-hibernate-module-1.2.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/lib/ant/xdoclet-xdoclet-module-1.2.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/lib/ant/commons-collections-2.0.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/lib/ant/xjavadoc-1.0.2.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk/lib/servlet.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/hostadmiral/trunk |
---|
Property changes: |
Added: svn:ignore |
+classes |
/sun/backpath/trunk/lib/commons-logging.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/backpath/trunk/lib/struts-1.1.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/backpath/trunk/lib/servlet.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/backpath/trunk/src/ak/backpath/BackPath.java |
---|
0,0 → 1,394 |
package ak.backpath; |
import java.io.InputStream; |
import java.io.OutputStream; |
import java.io.ByteArrayInputStream; |
import java.io.ByteArrayOutputStream; |
import java.io.IOException; |
import java.util.Arrays; |
import java.util.List; |
import java.util.Iterator; |
import java.util.Map; |
import java.util.ArrayList; |
import java.util.Set; |
import java.util.TreeSet; |
import java.util.Collections; |
import java.util.zip.Deflater; |
import java.util.zip.Inflater; |
import java.util.zip.DeflaterOutputStream; |
import java.util.zip.InflaterInputStream; |
import java.net.URL; |
import java.net.URLEncoder; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.commons.logging.Log; |
import org.apache.commons.logging.LogFactory; |
public class BackPath |
{ |
private static Log log = LogFactory.getLog(BackPath.class); |
public static final String DEFAULT_KEY = BackPath.class.getName(); |
public static final String DEFAULT_PARAM = "backpath"; |
public static final String OUT_CHARSET = "UTF-8"; |
public static final String URL_CHARSET = "UTF-8"; |
public static final String IGNORES_DELIMITER = "\\s*;\\s*"; |
public static final boolean DEFAULT_ZIP = true; |
public static final String[] METHODS_TO_SAVE_PARAMS = {"GET"}; |
public static final char URL_PARAM_START = '?'; |
public static final char URL_PARAM_SEPARATOR = '&'; |
public static final char URL_PARAM_VALUE = '='; |
public static final char URL_PARAM_VALUE_SEP = ','; |
protected static final byte URL_DELIMITER = 0; |
protected static final int BUFFER_SIZE = 1024; |
protected static final int INIT_STREAM_SIZE_COEF = 100; |
protected static final String URL_PARAM_START_STR = "" + URL_PARAM_START; |
protected static Set methodsToSaveParams; |
// List(String) |
protected List stack = new ArrayList(); |
protected String param = DEFAULT_PARAM; |
protected String[] ignoreParams = null; |
/** zip the stack */ |
protected boolean zip = DEFAULT_ZIP; |
// string cache |
protected String forwardParams; |
protected boolean forwardParamsFormed = false; |
protected String currentParams; |
protected boolean currentParamsFormed = false; |
protected String backwardParams; |
protected boolean backwardParamsFormed = false; |
protected String backwardUrl; |
protected boolean backwardUrlFormed = false; |
static { |
methodsToSaveParams = Collections.unmodifiableSet( |
new TreeSet(Arrays.asList(METHODS_TO_SAVE_PARAMS))); |
} |
protected static Deflater deflater = new Deflater(); |
protected static Inflater inflater = new Inflater(); |
public static BackPath findBackPath(HttpServletRequest request) |
throws Exception |
{ |
return findBackPath(request, DEFAULT_KEY, DEFAULT_PARAM, (String)null, DEFAULT_ZIP); |
} |
public static BackPath findBackPath(HttpServletRequest request, String backPathKey, |
String backPathParam, String backPathIgnore, boolean zip) |
throws Exception |
{ |
Object backPathObj = request.getAttribute(backPathKey); |
if(backPathObj == null) { |
BackPath backPath; |
String[] ignores = null; |
if(backPathIgnore != null) |
ignores = backPathIgnore.trim().split(IGNORES_DELIMITER); |
backPath = new BackPath(request, backPathParam, ignores, zip); |
request.setAttribute(backPathKey, backPath); |
return backPath; |
} |
else if(backPathObj instanceof BackPath) { |
return (BackPath)backPathObj; |
} |
else { |
throw new Exception("An object under key " + backPathKey |
+ " is not a " + BackPath.class.getName()); |
} |
} |
public BackPath(HttpServletRequest request, String param, String[] ignoreParams, boolean zip) |
{ |
this.zip = zip; |
this.param = param; |
this.ignoreParams = ignoreParams; |
init(request); |
} |
public boolean getZip() |
{ |
return zip; |
} |
public void setZip(boolean zip) |
{ |
this.zip = zip; |
resetCachedStrings(); |
} |
public String getParam() |
{ |
return param; |
} |
public void setParam(String param) |
{ |
this.param = param; |
resetCachedStrings(); |
} |
public String[] getIgnoreParams() |
{ |
return ignoreParams; |
} |
public void setIgnoreParams(String[] ignoreParams) |
{ |
this.ignoreParams = ignoreParams; |
resetCachedStrings(); |
} |
public boolean getHasBack() |
{ |
return (stack.size() > 1); |
} |
// List(String) |
public List getStack() |
{ |
return Collections.unmodifiableList(stack); |
} |
public String getForwardParams() |
{ |
if(!forwardParamsFormed) { |
forwardParams = formForwardParams(); |
forwardParamsFormed = true; |
} |
return forwardParams; |
} |
protected String formForwardParams() |
{ |
try { |
return encode(stack, zip, 0); |
} |
catch(IOException ex) { |
log.error("Cannot form forward params", ex); |
return null; |
} |
} |
public String getBackwardParams() |
{ |
if(!backwardParamsFormed) { |
backwardParams = formBackwardParams(); |
backwardParamsFormed = true; |
} |
return backwardParams; |
} |
protected String formBackwardParams() |
{ |
try { |
if(stack.size() <= 2) |
return null; |
else |
return encode(stack, zip, 2); |
} |
catch(IOException ex) { |
log.error("Cannot form backward params", ex); |
return null; |
} |
} |
public String getBackwardUrl() |
{ |
if(!backwardParamsFormed) { |
backwardUrl = formBackwardUrl(); |
backwardUrlFormed = true; |
} |
return backwardUrl; |
} |
protected String formBackwardUrl() |
{ |
if(stack.size() < 2) return null; |
try { |
StringBuffer url = new StringBuffer((String)stack.get(stack.size()-2)); |
if(stack.size() > 2) { |
String s = encode(stack, zip, 2); |
if(url.indexOf(URL_PARAM_START_STR) >= 0) url.append(URL_PARAM_SEPARATOR); |
else url.append(URL_PARAM_START); |
url.append(param).append(URL_PARAM_VALUE).append(s); |
} |
return url.toString(); |
} |
catch(IOException ex) { |
log.error("Cannot form backward url", ex); |
return null; |
} |
} |
public String getCurrentParams() |
{ |
if(!currentParamsFormed) { |
currentParams = formCurrentParams(); |
currentParamsFormed = true; |
} |
return currentParams; |
} |
protected String formCurrentParams() |
{ |
try { |
if(stack.size() <= 1) |
return null; |
else |
return encode(stack, zip, 1); |
} |
catch(IOException ex) { |
log.error("Cannot form current params", ex); |
return null; |
} |
} |
public void init(HttpServletRequest request) |
{ |
try { |
resetCachedStrings(); |
// get old |
decode(stack, request.getParameter(param), zip); |
// add new |
String url = (new URL(request.getRequestURL().toString())).getPath(); |
if(methodsToSaveParams.contains(request.getMethod())) { |
// to ignore |
Set ignore = new TreeSet(); |
if(ignoreParams != null) { |
for(int i = 0; i < ignoreParams.length; i++) |
ignore.add(ignoreParams[i]); |
} |
ignore.add(param); |
// form query string |
StringBuffer query = new StringBuffer(); |
Map requestParams = request.getParameterMap(); |
for(Iterator i = requestParams.keySet().iterator(); i.hasNext(); ) { |
String name = (String)i.next(); |
if(ignore.contains(name)) continue; |
if(query.length() == 0) |
query.append(URL_PARAM_START); |
else |
query.append(URL_PARAM_SEPARATOR); |
query.append(URLEncoder.encode(name, URL_CHARSET)); |
query.append(URL_PARAM_VALUE); |
String[] values = (String[])requestParams.get(name); |
for(int j = 0; j < values.length; j++) { |
if(j > 0) query.append(URL_PARAM_VALUE_SEP); |
query.append(URLEncoder.encode(values[j], URL_CHARSET)); |
} |
} |
// form url |
if(query.length() > 0) url = query.insert(0, url).toString(); |
} |
stack.add(url); |
} |
catch(IOException ex) { |
log.error("Cannot init", ex); |
} |
} |
/** |
* @param stack List(String) |
*/ |
protected String encode(List stack, boolean zip, int suffix) |
throws IOException |
{ |
ByteArrayOutputStream buf = new ByteArrayOutputStream(stack.size()*INIT_STREAM_SIZE_COEF); |
Object lock = (zip ? (Object)BackPath.class : this); |
synchronized(lock) { |
OutputStream out; |
if(zip) { |
deflater.reset(); |
out = new DeflaterOutputStream(new Base64.OutputStream(buf), deflater); |
} |
else { |
out = new Base64.OutputStream(buf); |
} |
for(int i = 0; i < stack.size()-suffix; i++) { |
String s = (String)stack.get(i); |
if(i > 0) out.write(URL_DELIMITER); |
out.write(s.getBytes(URL_CHARSET)); |
} |
out.close(); |
} |
return buf.toString(OUT_CHARSET); |
} |
/** |
* @param stack List(String) |
*/ |
protected void decode(List stack, String path, boolean zip) |
throws IOException |
{ |
stack.clear(); |
if(path == null || path.equals("")) return; |
ByteArrayOutputStream dec = new ByteArrayOutputStream(stack.size()*INIT_STREAM_SIZE_COEF); |
Object lock = (zip ? (Object)BackPath.class : this); |
synchronized(lock) { |
ByteArrayInputStream enc = new ByteArrayInputStream(path.getBytes(OUT_CHARSET)); |
InputStream in; |
if(zip) { |
inflater.reset(); |
in = new InflaterInputStream(new Base64.InputStream(enc), inflater); |
} |
else { |
in = new Base64.InputStream(enc); |
} |
byte[] tmp = new byte[BUFFER_SIZE]; |
int l; |
while((l = in.read(tmp, 0, tmp.length)) > 0) { |
dec.write(tmp, 0, l); |
} |
} |
try { |
byte[] buf = dec.toByteArray(); |
for(int start = 0, end = 0; end <= buf.length; end++) { |
if(end == buf.length || buf[end] == URL_DELIMITER) { |
stack.add(new String(buf, start, end-start, URL_CHARSET)); |
start = end+1; |
} |
} |
} |
catch(Exception ex) { // if some mistake in stack, then ignore it completely |
stack.clear(); |
log.info("Cannot parse stack", ex); |
} |
} |
protected void resetCachedStrings() |
{ |
forwardParams = null; |
forwardParamsFormed = false; |
currentParams = null; |
currentParamsFormed = false; |
backwardParams = null; |
backwardParamsFormed = false; |
backwardUrl = null; |
backwardUrlFormed = false; |
} |
} |
/sun/backpath/trunk/src/ak/backpath/test/BackPathTest.java |
---|
0,0 → 1,87 |
package ak.backpath.test; |
import java.util.Map; |
import javax.servlet.http.HttpServletRequest; |
import ak.backpath.BackPath; |
public class BackPathTest |
{ |
public static void main(String[] args) |
throws Exception |
{ |
int n = 50000; |
int m = 1; |
TestThread[] threads = new TestThread[m]; |
for(int i = 0; i < threads.length; i++) { |
threads[i] = new TestThread(n); |
} |
long t1 = System.currentTimeMillis(); |
for(int i = 0; i < threads.length; i++) { |
threads[i].start(); |
} |
for(int i = 0; i < threads.length; i++) { |
threads[i].join(); |
} |
long t2 = System.currentTimeMillis(); |
System.out.println(m + " threads * " + n + " iterations = " + (t2-t1) + " ms"); |
System.out.println((((long)m*n*1000)/(t2-t1)) + " requests/s"); |
} |
private static class TestThread extends Thread |
{ |
private int n; |
public TestThread(int n) |
{ |
this.n = n; |
} |
public void run() { |
try { |
Map params = new java.util.HashMap(); |
DummyRequest request; |
BackPath backPath; |
String pathString; |
// index |
params.clear(); |
request = new DummyRequest("http://localhost/testapp/index.do", params); |
backPath = BackPath.findBackPath(request); |
pathString = backPath.getForwardParams(); |
backPath.getBackwardUrl(); |
// list |
params.clear(); |
params.put("backpath", new String[] { pathString }); |
params.put("show", new String[] { "true" }); |
request = new DummyRequest("http://localhost/testapp/some/list.do?show=true", params); |
backPath = BackPath.findBackPath(request); |
pathString = backPath.getForwardParams(); |
backPath.getBackwardUrl(); |
// details |
params.clear(); |
params.put("backpath", new String[] { pathString }); |
params.put("id", new String[] { "123" }); |
params.put("show", new String[] { "true" }); |
request = new DummyRequest("http://localhost/testapp/some/details.do?id=123&show=true", params); |
for(int i = 0; i < n; i++) { |
request.clearAttributes(); |
backPath = BackPath.findBackPath(request); |
backPath.getCurrentParams(); |
backPath.getForwardParams(); |
backPath.getBackwardUrl(); |
} |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
} |
} |
} |
} |
/sun/backpath/trunk/src/ak/backpath/test/DummyRequest.java |
---|
0,0 → 1,294 |
package ak.backpath.test; |
import javax.servlet.http.HttpServletRequest; |
class DummyRequest implements HttpServletRequest |
{ |
private StringBuffer url; |
private java.util.Map params; |
private java.util.Map attrs = new java.util.HashMap(); |
public DummyRequest(String url, java.util.Map params) |
{ |
this.url = new StringBuffer(url); |
this.params = params; |
} |
public void clearAttributes() |
{ |
attrs.clear(); |
} |
public Object getAttribute(String name) |
{ |
return attrs.get(name); |
} |
public java.util.Enumeration getAttributeNames() |
{ |
return null; |
} |
public String getCharacterEncoding() |
{ |
return null; |
} |
public int getContentLength() |
{ |
return 0; |
} |
public String getContentType() |
{ |
return null; |
} |
public javax.servlet.ServletInputStream getInputStream() |
{ |
return null; |
} |
public java.util.Locale getLocale() |
{ |
return null; |
} |
public java.util.Enumeration getLocales() |
{ |
return null; |
} |
public String getLocalAddr() |
{ |
return null; |
} |
public String getLocalName() |
{ |
return null; |
} |
public int getLocalPort() |
{ |
return 0; |
} |
public String getParameter(String name) |
{ |
String[] v = (String[])params.get(name); |
if(v == null) |
return null; |
else |
return v[0]; |
} |
public java.util.Map getParameterMap() |
{ |
return params; |
} |
public java.util.Enumeration getParameterNames() |
{ |
return null; |
} |
public String[] getParameterValues(String name) |
{ |
return null; |
} |
public String getProtocol() |
{ |
return null; |
} |
public java.io.BufferedReader getReader() |
{ |
return null; |
} |
public String getRealPath(String path) |
{ |
return null; |
} |
public String getRemoteAddr() |
{ |
return null; |
} |
public String getRemoteHost() |
{ |
return null; |
} |
public int getRemotePort() |
{ |
return 0; |
} |
public javax.servlet.RequestDispatcher getRequestDispatcher(String path) |
{ |
return null; |
} |
public String getScheme() |
{ |
return null; |
} |
public String getServerName() |
{ |
return null; |
} |
public int getServerPort() |
{ |
return 0; |
} |
public boolean isSecure() |
{ |
return false; |
} |
public void removeAttribute(String name) |
{ |
} |
public void setAttribute(String name, Object o) |
{ |
attrs.put(name, o); |
} |
public void setCharacterEncoding(String env) |
{ |
} |
public String getAuthType() |
{ |
return null; |
} |
public String getContextPath() |
{ |
return null; |
} |
public javax.servlet.http.Cookie[] getCookies() |
{ |
return null; |
} |
public long getDateHeader(String name) |
{ |
return 0; |
} |
public String getHeader(String name) |
{ |
return null; |
} |
public java.util.Enumeration getHeaderNames() |
{ |
return null; |
} |
public java.util.Enumeration getHeaders(String name) |
{ |
return null; |
} |
public int getIntHeader(String name) |
{ |
return 0; |
} |
public String getMethod() |
{ |
return "GET"; |
} |
public String getPathInfo() |
{ |
return null; |
} |
public String getPathTranslated() |
{ |
return null; |
} |
public String getQueryString() |
{ |
return null; |
} |
public String getRemoteUser() |
{ |
return null; |
} |
public String getRequestedSessionId() |
{ |
return null; |
} |
public String getRequestURI() |
{ |
return null; |
} |
public StringBuffer getRequestURL() |
{ |
return url; |
} |
public String getServletPath() |
{ |
return null; |
} |
public javax.servlet.http.HttpSession getSession() |
{ |
return null; |
} |
public javax.servlet.http.HttpSession getSession(boolean create) |
{ |
return null; |
} |
public java.security.Principal getUserPrincipal() |
{ |
return null; |
} |
public boolean isRequestedSessionIdFromCookie() |
{ |
return false; |
} |
public boolean isRequestedSessionIdFromUrl() |
{ |
return false; |
} |
public boolean isRequestedSessionIdFromURL() |
{ |
return false; |
} |
public boolean isRequestedSessionIdValid() |
{ |
return false; |
} |
public boolean isUserInRole(String role) |
{ |
return false; |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/CurrentStackTag.java |
---|
0,0 → 1,14 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import org.apache.struts.util.ResponseUtils; |
import ak.backpath.BackPath; |
public class CurrentStackTag extends StackTagBase |
{ |
protected String getStack() throws JspException |
{ |
return findBackPath().getCurrentParams(); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/LinkTagBase.java |
---|
0,0 → 1,72 |
package ak.backpath.taglib; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.taglib.html.LinkTag; |
import ak.backpath.BackPath; |
public abstract class LinkTagBase extends LinkTag |
{ |
protected String backPathKey = BackPath.DEFAULT_KEY; |
public String getBackPathKey() |
{ |
return this.backPathKey; |
} |
public void setBackPathKey(String backPathKey) |
{ |
this.backPathKey = backPathKey; |
} |
protected String backPathParam = BackPath.DEFAULT_PARAM; |
public String getBackPathParam() |
{ |
return this.backPathParam; |
} |
public void setBackPathParam(String backPathParam) |
{ |
this.backPathParam = backPathParam; |
} |
protected String backPathIgnore = null; |
public String getBackPathIgnore() |
{ |
return this.backPathIgnore; |
} |
public void setBackPathIgnore(String backPathIgnore) |
{ |
this.backPathIgnore = backPathIgnore; |
} |
protected boolean zip = BackPath.DEFAULT_ZIP; |
public boolean getZip() |
{ |
return this.zip; |
} |
public void setZip(boolean zip) |
{ |
this.zip = zip; |
} |
public void release() |
{ |
super.release(); |
backPathKey = BackPath.DEFAULT_KEY; |
backPathParam = BackPath.DEFAULT_PARAM; |
backPathIgnore = null; |
zip = BackPath.DEFAULT_ZIP; |
} |
protected BackPath findBackPath() throws JspException |
{ |
return TaglibUtils.findBackPath(pageContext, backPathKey, |
backPathParam, backPathIgnore, zip); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/EmptyTagBase.java |
---|
0,0 → 1,87 |
package ak.backpath.taglib; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import ak.backpath.BackPath; |
public abstract class EmptyTagBase extends TagSupport |
{ |
protected String backPathKey = BackPath.DEFAULT_KEY; |
public String getBackPathKey() |
{ |
return this.backPathKey; |
} |
public void setBackPathKey(String backPathKey) |
{ |
this.backPathKey = backPathKey; |
} |
protected String backPathParam = BackPath.DEFAULT_PARAM; |
public String getBackPathParam() |
{ |
return this.backPathParam; |
} |
public void setBackPathParam(String backPathParam) |
{ |
this.backPathParam = backPathParam; |
} |
protected String backPathIgnore = null; |
public String getBackPathIgnore() |
{ |
return this.backPathIgnore; |
} |
public void setBackPathIgnore(String backPathIgnore) |
{ |
this.backPathIgnore = backPathIgnore; |
} |
protected boolean zip = BackPath.DEFAULT_ZIP; |
public boolean getZip() |
{ |
return this.zip; |
} |
public void setZip(boolean zip) |
{ |
this.zip = zip; |
} |
public void release() |
{ |
super.release(); |
backPathKey = BackPath.DEFAULT_KEY; |
backPathParam = BackPath.DEFAULT_PARAM; |
backPathIgnore = null; |
zip = BackPath.DEFAULT_ZIP; |
} |
public int doStartTag() throws JspException |
{ |
if (condition()) |
return (EVAL_BODY_INCLUDE); |
else |
return (SKIP_BODY); |
} |
public int doEndTag() throws JspException |
{ |
return (EVAL_PAGE); |
} |
protected abstract boolean condition() throws JspException; |
protected BackPath findBackPath() throws JspException |
{ |
return TaglibUtils.findBackPath(pageContext, backPathKey, |
backPathParam, backPathIgnore, zip); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/ForwardStackTag.java |
---|
0,0 → 1,14 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import org.apache.struts.util.ResponseUtils; |
import ak.backpath.BackPath; |
public class ForwardStackTag extends StackTagBase |
{ |
protected String getStack() throws JspException |
{ |
return findBackPath().getForwardParams(); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/BackwardLinkTag.java |
---|
0,0 → 1,14 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import ak.backpath.BackPath; |
public class BackwardLinkTag extends LinkTagBase |
{ |
protected String calculateURL() throws JspException |
{ |
String url = findBackPath().getBackwardUrl(); |
if(url == null) url = "/"; |
return url; |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/ak-backpath.tld |
---|
0,0 → 1,543 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>backpath</shortname> |
<uri>http://26th.net/backpath</uri> |
<tag> |
<name>backlink</name> |
<tagclass>ak.backpath.taglib.BackwardLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>ak.backpath.taglib.ForwardLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>empty</name> |
<tagclass>ak.backpath.taglib.EmptyTag</tagclass> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>ak.backpath.taglib.NotEmptyTag</tagclass> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>current</name> |
<tagclass>ak.backpath.taglib.CurrentTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forward</name> |
<tagclass>ak.backpath.taglib.ForwardTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forwardStack</name> |
<tagclass>ak.backpath.taglib.ForwardStackTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>currentStack</name> |
<tagclass>ak.backpath.taglib.CurrentStackTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>backwardStack</name> |
<tagclass>ak.backpath.taglib.BackwardStackTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/backpath/trunk/src/ak/backpath/taglib/EmptyTag.java |
---|
0,0 → 1,11 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
public class EmptyTag extends EmptyTagBase |
{ |
protected boolean condition() throws JspException |
{ |
return !findBackPath().getHasBack(); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/NotEmptyTag.java |
---|
0,0 → 1,11 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
public class NotEmptyTag extends EmptyTagBase |
{ |
protected boolean condition() throws JspException |
{ |
return findBackPath().getHasBack(); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/StackTagBase.java |
---|
0,0 → 1,82 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import org.apache.struts.util.ResponseUtils; |
import ak.backpath.BackPath; |
public abstract class StackTagBase extends TagSupport |
{ |
protected String backPathKey = BackPath.DEFAULT_KEY; |
public String getBackPathKey() |
{ |
return this.backPathKey; |
} |
public void setBackPathKey(String backPathKey) |
{ |
this.backPathKey = backPathKey; |
} |
protected String backPathParam = BackPath.DEFAULT_PARAM; |
public String getBackPathParam() |
{ |
return this.backPathParam; |
} |
public void setBackPathParam(String backPathParam) |
{ |
this.backPathParam = backPathParam; |
} |
protected String backPathIgnore = null; |
public String getBackPathIgnore() |
{ |
return this.backPathIgnore; |
} |
public void setBackPathIgnore(String backPathIgnore) |
{ |
this.backPathIgnore = backPathIgnore; |
} |
protected boolean zip = BackPath.DEFAULT_ZIP; |
public boolean getZip() |
{ |
return this.zip; |
} |
public void setZip(boolean zip) |
{ |
this.zip = zip; |
} |
public void release() |
{ |
super.release(); |
backPathKey = BackPath.DEFAULT_KEY; |
backPathParam = BackPath.DEFAULT_PARAM; |
backPathIgnore = null; |
zip = BackPath.DEFAULT_ZIP; |
} |
public int doStartTag() throws JspException |
{ |
String stack = getStack(); |
if(stack == null) stack = ""; |
ResponseUtils.write(pageContext, stack); |
return SKIP_BODY; |
} |
protected BackPath findBackPath() throws JspException |
{ |
return TaglibUtils.findBackPath(pageContext, backPathKey, |
backPathParam, backPathIgnore, zip); |
} |
protected abstract String getStack() throws JspException; |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/CurrentTag.java |
---|
0,0 → 1,17 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import ak.backpath.BackPath; |
public class CurrentTag extends HiddenTagBase |
{ |
public int doStartTag() throws JspException |
{ |
this.property = backPathParam; |
this.value = TaglibUtils.findBackPath(pageContext, backPathKey, |
backPathParam, backPathIgnore, zip).getCurrentParams(); |
if(this.value == null) this.value = ""; |
return super.doStartTag(); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/ForwardLinkTag.java |
---|
0,0 → 1,21 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import ak.backpath.BackPath; |
public class ForwardLinkTag extends LinkTagBase |
{ |
protected String calculateURL() throws JspException |
{ |
String url = super.calculateURL(); |
if(url == null) return null; |
String params = findBackPath().getForwardParams(); |
if(params == null) return url; |
if(url.indexOf("?") > 0) |
return url + "&" + backPathParam + "=" + params; |
else |
return url + "?" + backPathParam + "=" + params; |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/BackwardStackTag.java |
---|
0,0 → 1,14 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.tagext.TagSupport; |
import org.apache.struts.util.ResponseUtils; |
import ak.backpath.BackPath; |
public class BackwardStackTag extends StackTagBase |
{ |
protected String getStack() throws JspException |
{ |
return findBackPath().getBackwardParams(); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/ForwardTag.java |
---|
0,0 → 1,17 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import ak.backpath.BackPath; |
public class ForwardTag extends HiddenTagBase |
{ |
public int doStartTag() throws JspException |
{ |
this.property = backPathParam; |
this.value = TaglibUtils.findBackPath(pageContext, backPathKey, |
backPathParam, backPathIgnore, zip).getForwardParams(); |
if(this.value == null) this.value = ""; |
return super.doStartTag(); |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/HiddenTagBase.java |
---|
0,0 → 1,71 |
package ak.backpath.taglib; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.taglib.html.BaseFieldTag; |
import ak.backpath.BackPath; |
public abstract class HiddenTagBase extends BaseFieldTag |
{ |
protected String backPathKey = BackPath.DEFAULT_KEY; |
public String getBackPathKey() |
{ |
return this.backPathKey; |
} |
public void setBackPathKey(String backPathKey) |
{ |
this.backPathKey = backPathKey; |
} |
protected String backPathParam = BackPath.DEFAULT_PARAM; |
public String getBackPathParam() |
{ |
return this.backPathParam; |
} |
public void setBackPathParam(String backPathParam) |
{ |
this.backPathParam = backPathParam; |
} |
protected String backPathIgnore = null; |
public String getBackPathIgnore() |
{ |
return this.backPathIgnore; |
} |
public void setBackPathIgnore(String backPathIgnore) |
{ |
this.backPathIgnore = backPathIgnore; |
} |
protected boolean zip = BackPath.DEFAULT_ZIP; |
public boolean getZip() |
{ |
return this.zip; |
} |
public void setZip(boolean zip) |
{ |
this.zip = zip; |
} |
public HiddenTagBase() |
{ |
super(); |
this.type = "hidden"; |
} |
public void release() |
{ |
super.release(); |
backPathKey = BackPath.DEFAULT_KEY; |
backPathParam = BackPath.DEFAULT_PARAM; |
backPathIgnore = null; |
zip = BackPath.DEFAULT_ZIP; |
} |
} |
/sun/backpath/trunk/src/ak/backpath/taglib/TaglibUtils.java |
---|
0,0 → 1,23 |
package ak.backpath.taglib; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.PageContext; |
import javax.servlet.jsp.tagext.TagSupport; |
import ak.backpath.BackPath; |
public abstract class TaglibUtils |
{ |
public static BackPath findBackPath(PageContext pageContext, String backPathKey, |
String backPathParam, String backPathIgnore, boolean zip) |
throws JspException |
{ |
try { |
return BackPath.findBackPath((HttpServletRequest)pageContext.getRequest(), |
backPathKey, backPathParam, backPathIgnore, zip); |
} |
catch(Exception ex) { |
throw new JspException(ex); |
} |
} |
} |
/sun/backpath/trunk/src/ak/backpath/Base64.java |
---|
0,0 → 1,243 |
package ak.backpath; |
/** |
* Special version for packpath (ak) - |
* symbols +/ replaced with .* to produce correct URL-parts; |
* no end padding, most methods are deleted. |
* |
* Original author Robert Harder (rob@iharder.net) |
*/ |
class Base64 |
{ |
private final static byte[] ALPHABET = |
{ |
(byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', |
(byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', |
(byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', |
(byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', |
(byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', |
(byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', |
(byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', |
(byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z', |
(byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5', |
(byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'.', (byte)'*' |
}; |
/** |
* Translates a Base64 value to either its 6-bit reconstruction value |
* or a negative number indicating some other meaning. |
**/ |
private final static byte[] DECODABET = |
{ |
-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, |
-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, |
-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,63,-9,-9,-9,62,-9, |
52,53,54,55,56,57,58,59,60,61,-9,-9,-9,-9,-9,-9, |
-9, 0, 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,-9,-9,-9,-9,-9, |
-9,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, |
41,42,43,44,45,46,47,48,49,50,51,-9,-9,-9,-9,-9 |
}; |
private Base64(){} |
private static byte[] encode3to4(byte[] destination, byte[] source, int numSigBytes) |
{ |
// 1 2 3 |
// 01234567890123456789012345678901 Bit position |
// --------000000001111111122222222 Array position from threeBytes |
// --------| || || || | Six bit groups to index ALPHABET |
// >>18 >>12 >> 6 >> 0 Right shift necessary |
// 0x3f 0x3f 0x3f Additional AND |
// Create buffer with zero-padding if there are only one or two |
// significant bytes passed in the array. |
// We have to shift left 24 in order to flush out the 1's that appear |
// when Java treats a value as negative that is cast from a byte to an int. |
int inBuff = ( numSigBytes > 0 ? ((source[ 0 ] << 24) >>> 8) : 0 ) |
| ( numSigBytes > 1 ? ((source[ 1 ] << 24) >>> 16) : 0 ) |
| ( numSigBytes > 2 ? ((source[ 2 ] << 24) >>> 24) : 0 ); |
switch( numSigBytes ) |
{ |
case 3: |
destination[ 0 ] = ALPHABET[ (inBuff >>> 18) ]; |
destination[ 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; |
destination[ 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; |
destination[ 3 ] = ALPHABET[ (inBuff ) & 0x3f ]; |
return destination; |
case 2: |
destination[ 0 ] = ALPHABET[ (inBuff >>> 18) ]; |
destination[ 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; |
destination[ 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; |
return destination; |
case 1: |
destination[ 0 ] = ALPHABET[ (inBuff >>> 18) ]; |
destination[ 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; |
return destination; |
default: |
return destination; |
} |
} |
private static int decode4to3( byte[] source, int srcOffset, byte[] destination, int destOffset, int length ) |
{ |
// Example: Dk== |
if( length == 2 ) |
{ |
int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) |
| ( ( DECODABET[ source[ srcOffset + 1] ] & 0xFF ) << 12 ); |
destination[ destOffset ] = (byte)( outBuff >>> 16 ); |
return 1; |
} |
// Example: DkL= |
else if( length == 3 ) |
{ |
int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) |
| ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) |
| ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6 ); |
destination[ destOffset ] = (byte)( outBuff >>> 16 ); |
destination[ destOffset + 1 ] = (byte)( outBuff >>> 8 ); |
return 2; |
} |
// Example: DkLE |
else |
{ |
try{ |
int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) |
| ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) |
| ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6) |
| ( ( DECODABET[ source[ srcOffset + 3 ] ] & 0xFF ) ); |
destination[ destOffset ] = (byte)( outBuff >> 16 ); |
destination[ destOffset + 1 ] = (byte)( outBuff >> 8 ); |
destination[ destOffset + 2 ] = (byte)( outBuff ); |
return 3; |
}catch( Exception e){ |
return -1; |
} |
} |
} |
static class InputStream extends java.io.FilterInputStream |
{ |
private int position = -1; |
private byte[] buffer = new byte[ 3 ]; |
private byte[] b4 = new byte[4]; |
private int numSigBytes; |
public InputStream( java.io.InputStream in) |
{ |
super( in ); |
} |
public int read() throws java.io.IOException |
{ |
// Do we need to get data? |
if( position < 0 ) |
{ |
int i = 0; |
for( ; i < 4; i++ ) |
{ |
int b = in.read(); |
if( b < 0 ) break; |
b4[i] = (byte)b; |
} |
if( i == 0 ) return -1; |
numSigBytes = decode4to3( b4, 0, buffer, 0, i ); |
position = 0; |
} |
// Got data? |
if( position >= 0 ) |
{ |
if( position >= numSigBytes ) |
return -1; |
int b = buffer[ position++ ]; |
if( position >= 3 ) |
position = -1; |
return b & 0xFF; |
} |
else |
{ |
throw new java.io.IOException( "Error in Base64 code reading stream." ); |
} |
} |
public int read( byte[] dest, int off, int len ) throws java.io.IOException |
{ |
int i; |
int b; |
for( i = 0; i < len; i++ ) |
{ |
b = read(); |
if( b >= 0 ) |
dest[off + i] = (byte)b; |
else if( i == 0 ) |
return -1; |
else |
break; |
} |
return i; |
} |
} |
static class OutputStream extends java.io.FilterOutputStream |
{ |
private int position = 0; |
private byte[] buffer = new byte[ 3 ]; |
private byte[] b4 = new byte[4]; |
public OutputStream( java.io.OutputStream out) |
{ |
super( out ); |
} |
public void write(int theByte) throws java.io.IOException |
{ |
buffer[ position++ ] = (byte)theByte; |
if( position >= 3 ) // Enough to encode. |
{ |
out.write( encode3to4( b4, buffer, 3 ) ); |
position = 0; |
} |
} |
public void write( byte[] theBytes, int off, int len ) throws java.io.IOException |
{ |
for( int i = 0; i < len; i++ ) |
{ |
write( theBytes[ off + i ] ); |
} |
} |
public void close() throws java.io.IOException |
{ |
if( position > 0 ) |
{ |
out.write( encode3to4( b4, buffer, position ), 0, position+1 ); |
position = 0; |
} |
super.close(); |
buffer = null; |
out = null; |
} |
} |
} |
/sun/backpath/trunk/build.xml |
---|
0,0 → 1,49 |
<project name="backpath" default="lib" basedir="."> |
<property name="build.compiler" value="jikes" /> |
<property name="src" location="src" /> |
<property name="classes" location="classes" /> |
<property name="lib" location="lib" /> |
<property name="output" location="output" /> |
<property name="classpath" value="" /> |
<path id="classpath.general"> |
<pathelement path="${classpath}" /> |
</path> |
<path id="classpath.compile"> |
<path refid="classpath.general" /> |
<pathelement location="${classes}" /> |
<fileset dir="${lib}"> |
<include name="**/*.jar" /> |
</fileset> |
</path> |
<target name="compile"> |
<mkdir dir="${classes}" /> |
<javac |
srcdir="${src}" |
destdir="${classes}" |
classpathref="classpath.compile" |
debug="on" |
nowarn="on" |
/> |
</target> |
<target name="lib" depends="compile"> |
<mkdir dir="${output}" /> |
<jar |
destfile="${output}/backpath.jar" |
basedir="${classes}" |
/> |
</target> |
<target name="clean"> |
<delete dir="${classes}"/> |
</target> |
<target name="all" depends="clean,lib" /> |
</project> |
/sun/backpath/trunk |
---|
Property changes: |
Added: svn:ignore |
+classes |
+output |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-beanutils.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-digester.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-logging.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/log4j.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-dbcp.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-pool.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-resources.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/struts.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/pg73jdbc3.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-collections.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-lang.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/jakarta-oro.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-fileupload.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/lib/commons-validator.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/webapp/WEB-INF/struts-tiles.tld |
---|
0,0 → 1,344 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>Tiles Tag Library</shortname> |
<uri>http://jakarta.apache.org/struts/tags-tiles</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.tiles.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>component</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>definition</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>attribute</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerUrl</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>definition</name> |
<tagclass>org.apache.struts.taglib.tiles.DefinitionTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>extends</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.tiles.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>putList</name> |
<tagclass>org.apache.struts.taglib.tiles.PutListTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>add</name> |
<tagclass>org.apache.struts.taglib.tiles.AddTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.tiles.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>getAsString</name> |
<tagclass>org.apache.struts.taglib.tiles.GetAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>useAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.UseAttributeTag</tagclass> |
<teiclass>org.apache.struts.taglib.tiles.UseAttributeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>importAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.ImportAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>initComponentDefinitions</name> |
<tagclass>org.apache.struts.taglib.tiles.InitDefinitionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>file</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/TrafficCount/trunk/webapp/WEB-INF/struts-config.xml |
---|
0,0 → 1,48 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> |
<struts-config> |
<form-beans> |
<form-bean |
name="messageForm" |
type="ak.simplechat.MessageForm" |
/> |
</form-beans> |
<global-forwards> |
<forward |
name="error" |
path="/error.jsp" |
/> |
</global-forwards> |
<action-mappings> |
<action |
path="/index" |
forward="/index.jsp"/> |
/> |
<action |
path="/display" |
type="ak.simplechat.DisplayAction" |
> |
<forward name="success" path="/display.jsp"/> |
</action> |
<action |
path="/message" |
type="ak.simplechat.MessageAction" |
name="messageForm" |
validate="true" |
scope="request" |
input="/message.jsp" |
> |
<forward name="message" path="/message.jsp"/> |
</action> |
</action-mappings> |
<message-resources parameter="ak.simplechat.ApplicationResources"/> |
</struts-config> |
/sun/TrafficCount/trunk/webapp/WEB-INF/struts-nested.tld |
---|
0,0 → 1,2870 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>nested</shortname> |
<uri>http://jakarta.apache.org/struts/tags-nested</uri> |
<tag> |
<name>nest</name> |
<tagclass>org.apache.struts.taglib.nested.NestedPropertyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>writeNesting</name> |
<tagclass>org.apache.struts.taglib.nested.NestedWriteNestingTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>root</name> |
<tagclass>org.apache.struts.taglib.nested.NestedRootTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedDefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedMessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedSizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedWriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedCheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedHiddenTag</tagclass> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedPasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedRadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedIterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.nested.logic.NestedIterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/TrafficCount/trunk/webapp/WEB-INF/struts-html.tld |
---|
0,0 → 1,2971 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>html</shortname> |
<uri>http://jakarta.apache.org/struts/tags-html</uri> |
<tag> |
<name>base</name> |
<tagclass>org.apache.struts.taglib.html.BaseTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>server</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>button</name> |
<tagclass>org.apache.struts.taglib.html.ButtonTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>cancel</name> |
<tagclass>org.apache.struts.taglib.html.CancelTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.html.CheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.html.ErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.html.FileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.html.FormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focusIndex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>frame</name> |
<tagclass>org.apache.struts.taglib.html.FrameTag</tagclass> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameborder</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>longdesc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginheight</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginwidth</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>noresize</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scrolling</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.html.HiddenTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>write</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>html</name> |
<tagclass>org.apache.struts.taglib.html.HtmlTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>xhtml</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.html.ImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.html.ImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>javascript</name> |
<tagclass>org.apache.struts.taglib.html.JavascriptValidatorTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>cdata</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>dynamicJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>staticJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>htmlComment</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.html.LinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.html.MessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.html.MultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>option</name> |
<tagclass>org.apache.struts.taglib.html.OptionTag</tagclass> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.html.OptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.html.OptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.html.PasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.html.RadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>idName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>reset</name> |
<tagclass>org.apache.struts.taglib.html.ResetTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>rewrite</name> |
<tagclass>org.apache.struts.taglib.html.RewriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.html.SelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.html.SubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.html.TextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.html.TextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>xhtml</name> |
<tagclass>org.apache.struts.taglib.html.XhtmlTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
</taglib> |
/sun/TrafficCount/trunk/webapp/WEB-INF/struts-bean.tld |
---|
0,0 → 1,382 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>bean</shortname> |
<uri>http://jakarta.apache.org/struts/tags-bean</uri> |
<tag> |
<name>cookie</name> |
<tagclass>org.apache.struts.taglib.bean.CookieTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.CookieTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.bean.DefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>header</name> |
<tagclass>org.apache.struts.taglib.bean.HeaderTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.HeaderTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>include</name> |
<tagclass>org.apache.struts.taglib.bean.IncludeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>page</name> |
<tagclass>org.apache.struts.taglib.bean.PageTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.PageTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>parameter</name> |
<tagclass>org.apache.struts.taglib.bean.ParameterTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ParameterTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>resource</name> |
<tagclass>org.apache.struts.taglib.bean.ResourceTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>input</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.bean.SizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>struts</name> |
<tagclass>org.apache.struts.taglib.bean.StrutsTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formBean</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>mapping</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.bean.WriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/TrafficCount/trunk/webapp/WEB-INF/validation.xml |
---|
0,0 → 1,58 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<form-validation> |
<!-- |
This is a blank Validator form file with a commented examples. |
--> |
<global> |
<!-- An example global constant |
<constant> |
<constant-name>postalCode</constant-name> |
<constant-value>^\d{5}\d*$</constant-value> |
</constant> |
end example--> |
</global> |
<formset> |
<!-- An example form |
<form name="logonForm"> |
<field |
property="username" |
depends="required"> |
<arg0 key="logonForm.username"/> |
</field> |
<field |
property="password" |
depends="required,mask"> |
<arg0 key="logonForm.password"/> |
<var> |
<var-name>mask</var-name> |
<var-value>^[0-9a-zA-Z]*$</var-value> |
</var> |
</field> |
</form> |
end example form --> |
</formset> |
<!-- An example formset for another locale |
<formset language="fr"> |
<constant> |
<constant-name>postalCode</constant-name> |
<constant-value>^[0-9a-zA-Z]*$</constant-value> |
</constant> |
</formset> |
--> |
</form-validation> |
/sun/TrafficCount/trunk/webapp/WEB-INF/validator-rules.xml |
---|
0,0 → 1,988 |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<!-- |
This file contains the default Struts Validator pluggable validator |
definitions. It should be placed somewhere under /WEB-INF and |
referenced in the struts-config.xml under the plug-in element |
for the ValidatorPlugIn. |
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> |
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml, |
/WEB-INF/validation.xml"/> |
</plug-in> |
These are the default error messages associated with |
each validator defined in this file. They should be |
added to your projects ApplicationResources.properties |
file or you can associate new ones by modifying the |
pluggable validators msg attributes in this file. |
# Struts Validator Error Messages |
errors.required={0} is required. |
errors.minlength={0} can not be less than {1} characters. |
errors.maxlength={0} can not be greater than {1} characters. |
errors.invalid={0} is invalid. |
errors.byte={0} must be a byte. |
errors.short={0} must be a short. |
errors.integer={0} must be an integer. |
errors.long={0} must be a long. |
errors.float={0} must be a float. |
errors.double={0} must be a double. |
errors.date={0} is not a date. |
errors.range={0} is not in the range {1} through {2}. |
errors.creditcard={0} is an invalid credit card number. |
errors.email={0} is an invalid e-mail address. |
--> |
<form-validation> |
<global> |
<validator name="required" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequired" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
<javascript><![CDATA[ |
function validateRequired(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRequired = new required(); |
for (x in oRequired) { |
var field = form[oRequired[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'file' || |
field.type == 'select-one' || |
field.type == 'radio' || |
field.type == 'password') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value == '') { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oRequired[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="requiredif" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequiredIf" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
org.apache.commons.validator.Validator, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
</validator> |
<validator name="minlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMinLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.minlength"> |
<javascript><![CDATA[ |
function validateMinLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMinLength = new minlength(); |
for (x in oMinLength) { |
if (form[oMinLength[x][0]].type == 'text' || |
form[oMinLength[x][0]].type == 'textarea') { |
var iMin = parseInt(oMinLength[x][2]("minlength")); |
if (form[oMinLength[x][0]].value.length < iMin) { |
if (i == 0) { |
focusField = form[oMinLength[x][0]]; |
} |
fields[i++] = oMinLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="maxlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMaxLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.maxlength"> |
<javascript><![CDATA[ |
function validateMaxLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMaxLength = new maxlength(); |
for (x in oMaxLength) { |
if (form[oMaxLength[x][0]].type == 'text' || |
form[oMaxLength[x][0]].type == 'textarea') { |
var iMax = parseInt(oMaxLength[x][2]("maxlength")); |
if (form[oMaxLength[x][0]].value.length > iMax) { |
if (i == 0) { |
focusField = form[oMaxLength[x][0]]; |
} |
fields[i++] = oMaxLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="mask" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMask" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.invalid"> |
<javascript><![CDATA[ |
function validateMask(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMasked = new mask(); |
for (x in oMasked) { |
if ((form[oMasked[x][0]].type == 'text' || |
form[oMasked[x][0]].type == 'textarea' || |
form[oMasked[x][0]].type == 'password') && |
(form[oMasked[x][0]].value.length > 0)) { |
if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) { |
if (i == 0) { |
focusField = form[oMasked[x][0]]; |
} |
fields[i++] = oMasked[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function matchPattern(value, mask) { |
var bMatched = mask.exec(value); |
if (!bMatched) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="byte" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateByte" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.byte" |
jsFunctionName="ByteValidations"> |
<javascript><![CDATA[ |
function validateByte(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oByte = new ByteValidations(); |
for (x in oByte) { |
var field = form[oByte[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oByte[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="short" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateShort" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.short" |
jsFunctionName="ShortValidations"> |
<javascript><![CDATA[ |
function validateShort(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oShort = new ShortValidations(); |
for (x in oShort) { |
var field = form[oShort[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oShort[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="integer" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateInteger" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.integer" |
jsFunctionName="IntegerValidations"> |
<javascript><![CDATA[ |
function validateInteger(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oInteger = new IntegerValidations(); |
for (x in oInteger) { |
var field = form[oInteger[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
if (!isAllDigits(value)) { |
bValid = false; |
} else { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oInteger[x][1]; |
bValid = false; |
} |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isAllDigits(argvalue) { |
argvalue = argvalue.toString(); |
var validChars = "0123456789"; |
var startFrom = 0; |
if (argvalue.substring(0, 2) == "0x") { |
validChars = "0123456789abcdefABCDEF"; |
startFrom = 2; |
} else if (argvalue.charAt(0) == "0") { |
validChars = "01234567"; |
startFrom = 1; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="long" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateLong" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.long"/> |
<validator name="float" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloat" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.float" |
jsFunctionName="FloatValidations"> |
<javascript><![CDATA[ |
function validateFloat(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oFloat = new FloatValidations(); |
for (x in oFloat) { |
var field = form[oFloat[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseFloat(value); |
if (isNaN(iValue)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oFloat[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="double" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDouble" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.double"/> |
<validator name="date" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDate" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.date" |
jsFunctionName="DateValidations"> |
<javascript><![CDATA[ |
function validateDate(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oDate = new DateValidations(); |
for (x in oDate) { |
var value = form[oDate[x][0]].value; |
var datePattern = oDate[x][2]("datePatternStrict"); |
if ((form[oDate[x][0]].type == 'text' || |
form[oDate[x][0]].type == 'textarea') && |
(value.length > 0) && |
(datePattern.length > 0)) { |
var MONTH = "MM"; |
var DAY = "dd"; |
var YEAR = "yyyy"; |
var orderMonth = datePattern.indexOf(MONTH); |
var orderDay = datePattern.indexOf(DAY); |
var orderYear = datePattern.indexOf(YEAR); |
if ((orderDay < orderYear && orderDay > orderMonth)) { |
var iDelim1 = orderMonth + MONTH.length; |
var iDelim2 = orderDay + DAY.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderDay && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderDay) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[2], matched[1], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth < orderYear && orderMonth > orderDay)) { |
var iDelim1 = orderDay + DAY.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[1], matched[2], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth > orderYear && orderMonth < orderDay)) { |
var iDelim1 = orderYear + YEAR.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); |
} else if (iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[3], matched[2], matched[1])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isValidDate(day, month, year) { |
if (month < 1 || month > 12) { |
return false; |
} |
if (day < 1 || day > 31) { |
return false; |
} |
if ((month == 4 || month == 6 || month == 9 || month == 11) && |
(day == 31)) { |
return false; |
} |
if (month == 2) { |
var leap = (year % 4 == 0 && |
(year % 100 != 0 || year % 400 == 0)); |
if (day>29 || (day == 29 && !leap)) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<!-- range is deprecated use intRange instead --> |
<validator name="range" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateRange(form) { |
return validateIntRange(form); |
}]]> |
</javascript> |
</validator> |
<validator name="intRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateIntRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new intRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var iMin = parseInt(oRange[x][2]("min")); |
var iMax = parseInt(oRange[x][2]("max")); |
var iValue = parseInt(form[oRange[x][0]].value); |
if (!(iValue >= iMin && iValue <= iMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="floatRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloatRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="float" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateFloatRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new floatRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var fMin = parseFloat(oRange[x][2]("min")); |
var fMax = parseFloat(oRange[x][2]("max")); |
var fValue = parseFloat(form[oRange[x][0]].value); |
if (!(fValue >= fMin && fValue <= fMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="creditCard" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateCreditCard" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.creditcard"> |
<javascript><![CDATA[ |
function validateCreditCard(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oCreditCard = new creditCard(); |
for (x in oCreditCard) { |
if ((form[oCreditCard[x][0]].type == 'text' || |
form[oCreditCard[x][0]].type == 'textarea') && |
(form[oCreditCard[x][0]].value.length > 0)) { |
if (!luhnCheck(form[oCreditCard[x][0]].value)) { |
if (i == 0) { |
focusField = form[oCreditCard[x][0]]; |
} |
fields[i++] = oCreditCard[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl |
*/ |
function luhnCheck(cardNumber) { |
if (isLuhnNum(cardNumber)) { |
var no_digit = cardNumber.length; |
var oddoeven = no_digit & 1; |
var sum = 0; |
for (var count = 0; count < no_digit; count++) { |
var digit = parseInt(cardNumber.charAt(count)); |
if (!((count & 1) ^ oddoeven)) { |
digit *= 2; |
if (digit > 9) digit -= 9; |
}; |
sum += digit; |
}; |
if (sum == 0) return false; |
if (sum % 10 == 0) return true; |
}; |
return false; |
} |
function isLuhnNum(argvalue) { |
argvalue = argvalue.toString(); |
if (argvalue.length == 0) { |
return false; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if ((argvalue.substring(n, n+1) < "0") || |
(argvalue.substring(n,n+1) > "9")) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="email" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateEmail" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.email"> |
<javascript><![CDATA[ |
function validateEmail(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oEmail = new email(); |
for (x in oEmail) { |
if ((form[oEmail[x][0]].type == 'text' || |
form[oEmail[x][0]].type == 'textarea') && |
(form[oEmail[x][0]].value.length > 0)) { |
if (!checkEmail(form[oEmail[x][0]].value)) { |
if (i == 0) { |
focusField = form[oEmail[x][0]]; |
} |
fields[i++] = oEmail[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), |
* http://javascript.internet.com |
*/ |
function checkEmail(emailStr) { |
if (emailStr.length == 0) { |
return true; |
} |
var emailPat=/^(.+)@(.+)$/; |
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; |
var validChars="\[^\\s" + specialChars + "\]"; |
var quotedUser="(\"[^\"]*\")"; |
var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; |
var atom=validChars + '+'; |
var word="(" + atom + "|" + quotedUser + ")"; |
var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); |
var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); |
var matchArray=emailStr.match(emailPat); |
if (matchArray == null) { |
return false; |
} |
var user=matchArray[1]; |
var domain=matchArray[2]; |
if (user.match(userPat) == null) { |
return false; |
} |
var IPArray = domain.match(ipDomainPat); |
if (IPArray != null) { |
for (var i = 1; i <= 4; i++) { |
if (IPArray[i] > 255) { |
return false; |
} |
} |
return true; |
} |
var domainArray=domain.match(domainPat); |
if (domainArray == null) { |
return false; |
} |
var atomPat=new RegExp(atom,"g"); |
var domArr=domain.match(atomPat); |
var len=domArr.length; |
if ((domArr[domArr.length-1].length < 2) || |
(domArr[domArr.length-1].length > 3)) { |
return false; |
} |
if (len < 2) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
</global> |
</form-validation> |
/sun/TrafficCount/trunk/webapp/WEB-INF/web.xml |
---|
0,0 → 1,101 |
<?xml version="1.0" encoding="ISO-8859-1"?> |
<!DOCTYPE web-app |
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" |
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> |
<web-app> |
<filter> |
<filter-name>Encoding Filter</filter-name> |
<filter-class>ak.simplechat.EncodingFilter</filter-class> |
</filter> |
<filter-mapping> |
<filter-name>Encoding Filter</filter-name> |
<url-pattern>/*</url-pattern> |
</filter-mapping> |
<!-- Standard Action Servlet Configuration (with debugging) --> |
<servlet> |
<servlet-name>action</servlet-name> |
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> |
<init-param> |
<param-name>config</param-name> |
<param-value>/WEB-INF/struts-config.xml</param-value> |
</init-param> |
<init-param> |
<param-name>debug</param-name> |
<param-value>2</param-value> |
</init-param> |
<init-param> |
<param-name>detail</param-name> |
<param-value>2</param-value> |
</init-param> |
<load-on-startup>2</load-on-startup> |
</servlet> |
<!-- Standard Action Servlet Mapping --> |
<servlet-mapping> |
<servlet-name>action</servlet-name> |
<url-pattern>*.do</url-pattern> |
</servlet-mapping> |
<!-- The Usual Welcome File List --> |
<welcome-file-list> |
<welcome-file>index.do</welcome-file> |
<welcome-file>index.html</welcome-file> |
</welcome-file-list> |
<!-- Struts Tag Library Descriptors --> |
<taglib> |
<taglib-uri>/tags/struts-bean</taglib-uri> |
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-html</taglib-uri> |
<taglib-location>/WEB-INF/struts-html.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-logic</taglib-uri> |
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-nested</taglib-uri> |
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-tiles</taglib-uri> |
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> |
</taglib> |
<!-- Security --> |
<security-constraint> |
<web-resource-collection> |
<web-resource-name>Simple Chat</web-resource-name> |
<url-pattern>/*</url-pattern> |
</web-resource-collection> |
<auth-constraint> |
<role-name>SimpleChat_user</role-name> |
</auth-constraint> |
</security-constraint> |
<login-config> |
<auth-method>BASIC</auth-method> |
<realm-name>SimpleChat</realm-name> |
</login-config> |
<security-role> |
<description>User of SimpleChat</description> |
<role-name>SimpleChat_user</role-name> |
</security-role> |
</web-app> |
/sun/TrafficCount/trunk/webapp/WEB-INF/tiles-defs.xml |
---|
0,0 → 1,42 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> |
<!-- |
This is a blank Tiles definition file with a commented example. |
--> |
<tiles-definitions> |
<!-- sample tiles definitions |
<definition name=".mainLayout" path="/common/layouts/classicLayout.jsp"> |
<put name="title" value="Sample Page Title" /> |
<put name="header" value="/common/header.jsp" /> |
<put name="menu" value=".mainMenu" /> |
<put name="footer" value="/common/footer.jsp" /> |
<put name="body" value=".portal.body" /> |
</definition> |
<definition name=".mainMenu" path="/common/layouts/vboxLayout.jsp" > |
<putList name="list" > |
<add value=".menu.links" /> |
<add value=".menu.taglib.references" /> |
<add value=".menu.printer.friendly" /> |
<add value=".menu.old.documents" /> |
</putList> |
</definition> |
<definition name="aPage" extends=".mainLayout"> |
<put name="title" value="Another Title" /> |
<put name="body" value=".aPage.body" /> |
</definition> |
end samples --> |
<definition name="${YOUR_DEFINITION_HERE}"> |
</definition> |
</tiles-definitions> |
/sun/TrafficCount/trunk/webapp/WEB-INF/struts-template.tld |
---|
0,0 → 1,73 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>template</shortname> |
<uri>http://jakarta.apache.org/struts/tags-template</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.template.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.template.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.template.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/TrafficCount/trunk/webapp/WEB-INF/struts-logic.tld |
---|
0,0 → 1,642 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>logic</shortname> |
<uri>http://jakarta.apache.org/struts/tags-logic</uri> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.logic.EmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.logic.EqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forward</name> |
<tagclass>org.apache.struts.taglib.logic.ForwardTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.logic.IterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.logic.LessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.logic.LessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.logic.MatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.logic.NotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.logic.NotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.logic.NotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.logic.NotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.logic.PresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>redirect</name> |
<tagclass>org.apache.struts.taglib.logic.RedirectTag</tagclass> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/TrafficCount/trunk/webapp/WEB-INF |
---|
Property changes: |
Added: svn:ignore |
+classes |
/sun/TrafficCount/trunk/webapp/display.jsp |
---|
0,0 → 1,22 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<html> |
<head> |
<title><bean:message key="title.display" /></title> |
<meta http-equiv="refresh" content="5; URL=display.do"> |
</head> |
<body> |
<logic:iterate name="messages" id="message"> |
<bean:write name="message" property="user" ignore="true" /> |
[<bean:write name="message" property="stamp" format="HH:mm:ss" />] |
<bean:write name="message" property="message" ignore="true" /><br> |
</logic:iterate> |
</body> |
</html> |
/sun/TrafficCount/trunk/webapp/index.jsp |
---|
0,0 → 1,17 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<html> |
<head> |
<title><bean:message key="title.main" /></title> |
</head> |
<frameset rows="60,*"> |
<frame src="message.jsp" name="SimpleChat_Message"> |
<frame src="display.do" name="SimpleChat_Display"> |
<noframes><bean:message key="error.frames.required" /></noframes> |
</frameset> |
</html> |
/sun/TrafficCount/trunk/webapp/index.do |
---|
--- TrafficCount/trunk/webapp/message.jsp (nonexistent) |
+++ TrafficCount/trunk/webapp/message.jsp (revision 958) |
@@ -0,0 +1,32 @@ |
+<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
+<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
+<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
+<html> |
+ |
+<head> |
+ <title><bean:message key="title.message" /></title> |
+</head> |
+ |
+<body> |
+ |
+<form action=message.do> |
+<p> |
+ <%= (request.getUserPrincipal() == null) ? null : request.getUserPrincipal().getName() %> - |
+ <input type=input name=message> <input type=submit value="<bean:message key="button.send" />"> |
+ <span style="color:red;"><html:errors property="message" /></span> |
+</p> |
+</form> |
+ |
+<script language="JavaScript"><!-- |
+ document.forms[0].message.focus(); |
+ |
+ if(window.parent) |
+ if(window.parent.SimpleChat_Display) |
+ if(window.parent.SimpleChat_Display.location) |
+ window.parent.SimpleChat_Display.location.reload(); |
+// --></script> |
+ |
+</body> |
+ |
+</html> |
/sun/TrafficCount/trunk/conf/log4j.properties |
---|
0,0 → 1,8 |
log4j.rootLogger=warn, stdout |
log4j.appender.stdout=org.apache.log4j.ConsoleAppender |
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout |
log4j.appender.stdout.layout.ConversionPattern=[%t] %-5p %c - %m%n |
log4j.logger.ak=warn |
log4j.logger.ak.trafficcount=warn |
/sun/TrafficCount/trunk/lib/servlet.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/TrafficCount/trunk/src/ak/trafficcount/ApplicationResources.properties |
---|
0,0 → 1,0 |
title.main=Traffic Count |
/sun/TrafficCount/trunk/src/ak/trafficcount/Logic.java |
---|
0,0 → 1,171 |
package ak.trafficcount; |
import java.util.Date; |
import java.util.List; |
import java.util.ArrayList; |
import javax.sql.DataSource; |
import java.sql.Connection; |
import java.sql.PreparedStatement; |
import java.sql.ResultSet; |
import java.sql.SQLException; |
import org.apache.commons.pool.ObjectPool; |
import org.apache.commons.pool.impl.GenericObjectPool; |
import org.apache.commons.dbcp.ConnectionFactory; |
import org.apache.commons.dbcp.PoolingDataSource; |
import org.apache.commons.dbcp.PoolableConnectionFactory; |
import org.apache.commons.dbcp.DriverManagerConnectionFactory; |
public class Logic |
{ |
private static DataSource dataSource; |
/** |
* @param year |
* @param month zero based |
*/ |
public static List getMonthReport( |
String host, String source, Integer year, Integer month) |
throws SQLException |
{ |
String query |
= "select host, source, (base + delta) as count, stamp from tcount" |
+ " where host = ?" |
+ " and source = ?" |
+ " and stamp in (" |
+ " (" |
+ " select min(stamp) from tcount " |
+ " where host = ?" |
+ " and source = ?" |
+ " and extract(month from stamp) = ?" |
+ " and extract(year from stamp) = ?" |
+ " group by extract(day from stamp)" |
+ " )" |
+ " union" |
+ " (" |
+ " select min(stamp) from tcount " |
+ " where host = ?" |
+ " and source = ?" |
+ " and extract(month from stamp) = ?" |
+ " and extract(year from stamp) = ?" |
+ " )" |
+ " )" |
+ " order by stamp"; |
Object[] params = new Object[] { |
host, source, host, source, month, year, host, source, month, year}; |
List result = new ArrayList(); |
Connection conn = null; |
PreparedStatement stmt = null; |
ResultSet rset = null; |
try { |
conn = dataSource.getConnection(); |
stmt = createPreparedStatement(conn, query, params); |
rset = stmt.executeQuery(); |
int numcols = rset.getMetaData().getColumnCount(); |
while(rset.next()) { |
for(int i = 1; i <= numcols; i++) { |
System.out.print("\t" + rset.getObject(i)); |
} |
System.out.println(); |
} |
} |
finally { |
try { rset.close(); } catch(Exception e) { } |
try { stmt.close(); } catch(Exception e) { } |
try { conn.close(); } catch(Exception e) { } |
} |
return result; |
} |
public static List getYearReport(String host, String source, int year) |
throws SQLException |
{ |
return null; |
} |
public static void initDataSource(String host, Integer port, |
String database, String user, String password) |
throws Exception |
{ |
String url; |
ObjectPool connectionPool; |
ConnectionFactory connectionFactory; |
PoolableConnectionFactory poolableConnectionFactory; |
url = formDataSourceUrl(host, port, database, user, password); |
Class.forName("org.postgresql.Driver"); |
connectionPool = new GenericObjectPool(null); |
connectionFactory = new DriverManagerConnectionFactory(url, null); |
poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, |
connectionPool, null, null, false, true); |
dataSource = new PoolingDataSource(connectionPool); |
} |
private static String formDataSourceUrl(String host, Integer port, |
String database, String user, String password) |
{ |
StringBuffer url = new StringBuffer("jdbc:postgresql://"); |
if(host == null) url.append("localhost"); |
else url.append(host); |
if(port != null) url.append(":").append(port); |
if(database == null) |
throw new RuntimeException("Database not specified"); |
url.append("/").append(database); |
if(user != null) { |
url.append("?user=").append(user); |
if(password != null) |
url.append("&password=").append(password); |
} |
return url.toString(); |
} |
private static PreparedStatement createPreparedStatement(Connection conn, |
String query, List params) |
throws SQLException |
{ |
return createPreparedStatement(conn, query, |
(params == null) ? null : params.toArray()); |
} |
private static PreparedStatement createPreparedStatement(Connection conn, |
String query, Object[] params) |
throws SQLException |
{ |
PreparedStatement stmt = conn.prepareStatement(query); |
if(params != null) { |
try { |
for(int i = 0; i < params.length; i++) |
stmt.setObject(i+1, params[i]); |
} |
finally { |
try { stmt.close(); } catch(Exception e) { } |
} |
} |
return stmt; |
} |
public static void main(String[] args) |
throws Exception |
{ |
initDataSource("sun", null, "trafficcount", "dbadmin", "krasota"); |
getMonthReport("sun", "tun0_out", new Integer(2003), new Integer(7)); |
} |
} |
/sun/TrafficCount/trunk/src/ak/trafficcount/TrafficEntry.java |
---|
0,0 → 1,40 |
package ak.trafficcount; |
import java.util.Date; |
import java.math.BigDecimal; |
public class TrafficEntry |
{ |
private String host; |
private String source; |
private BigDecimal value; |
private Date stamp; |
public TrafficEntry(String host, String source, BigDecimal value, Date stamp) |
{ |
this.host = host; |
this.source = source; |
this.value = value; |
this.stamp = stamp; |
} |
public String getHost() |
{ |
return host; |
} |
public String getSource() |
{ |
return source; |
} |
public BigDecimal getValue() |
{ |
return value; |
} |
public Date getStamp() |
{ |
return stamp; |
} |
} |
/sun/TrafficCount/trunk/sql/db-update/update-1_1_0-1_2_0.sql |
---|
0,0 → 1,127 |
-- |
-- TraficCounter |
-- Copyleft: Anatoli Klassen (anatoli@aksoft.net) |
-- |
-- SQL script for PostgeSQL |
-- |
-- Update from 1.1.0 to 1.2.0 |
-- |
update tversion set major=1, minor=2, build=0; |
drop function insert_count(varchar(100), numeric(20,0)); |
drop function insert_count_stage2( |
varchar(100), numeric(20,0), numeric(20,0), numeric(20,0)); |
CREATE TABLE tdays ( |
source varchar(100) not null, |
day DATE not null, |
beginvalue numeric(20,0) not null, |
endvalue numeric(20,0) not null, |
stamp timestamp not null, |
CONSTRAINT cdays_source FOREIGN KEY (source) REFERENCES tsources(name) |
); |
create index idays_main on tdays using btree (source, day); |
create index idays_general on tdays using btree (source); |
insert into tdays (source, day, beginvalue, endvalue, stamp) |
select c.source, c.day, |
(select COALESCE(max(c2.value), 0) from tcount c2 |
where c2.source = c.source and c2.stamp < c.day) as beginvalue, |
(select max(c2.value) from tcount c2 |
where c2.source = c.source and date_trunc('day', c2.stamp) = c.day) as endvalue, |
CURRENT_TIMESTAMP |
from |
(select distinct source, date_trunc('day', stamp) as day from tcount) c |
; |
drop table tcount; |
-- |
-- Create a new day counter. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 absolute value of the counter |
-- |
CREATE FUNCTION insert_counter_stage4(varchar(100), numeric(20,0)) |
RETURNS integer AS ' |
insert into tdays (source, day, beginvalue, endvalue, stamp) |
values ($1, CURRENT_DATE, |
(select COALESCE(max(endvalue), $2) from tdays |
where source = $1 and day = (CURRENT_DATE - interval \'1 day\')), |
$2, CURRENT_TIMESTAMP); |
select 1; |
' LANGUAGE SQL; |
-- |
-- Update day counter. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 absolute value of the counter |
-- |
CREATE FUNCTION update_counter_stage4(varchar(100), numeric(20,0)) |
RETURNS integer AS ' |
update tdays set endvalue = $2, stamp = CURRENT_TIMESTAMP |
where source = $1 and day = CURRENT_DATE; |
select 1; |
' LANGUAGE SQL; |
-- |
-- Update internal counters. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- @param 3 value of recalculated base |
-- |
CREATE FUNCTION update_counter_stage3( |
varchar(100), numeric(20,0), numeric(20,0)) |
RETURNS integer AS ' |
select (case |
when (select count(*) from tdays |
where day = CURRENT_DATE and source = $1) = 0 |
then insert_counter_stage4($1, $2 + $3) |
else update_counter_stage4($1, $2 + $3) |
end |
); |
update tsources set base = $3, delta = $2, countstamp = CURRENT_TIMESTAMP |
where name = $1; |
select 1; |
' LANGUAGE SQL; |
-- |
-- Update internal counters, calculate real counter value. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- @param 3 value of base |
-- @param 4 value of delta |
-- |
CREATE FUNCTION update_counter_stage2( |
varchar(100), numeric(20,0), numeric(20,0), numeric(20,0)) |
RETURNS integer AS ' |
select update_counter_stage3($1, $2, |
(select (case when $2 >= $4 then $3 else ($3 + $4) end))); |
' LANGUAGE SQL; |
-- |
-- Update current day counter for given source. Public |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- |
CREATE FUNCTION update_counter(varchar(100), numeric(20,0)) |
RETURNS integer AS ' |
select update_counter_stage2($1, $2, |
(select base from tsources where name = $1), |
(select delta from tsources where name = $1)); |
' LANGUAGE SQL; |
/sun/TrafficCount/trunk/sql/db-update/update-1_0_0-1_1_0.sql |
---|
0,0 → 1,110 |
-- |
-- TraficCounter |
-- Copyleft: Anatoli Klassen (anatoli@aksoft.net) |
-- |
-- SQL script for PostgeSQL |
-- |
-- Update from 1.0.0 to 1.1.0 |
-- |
CREATE TABLE tversion ( |
major integer not null, |
minor integer not null, |
build integer not null |
); |
insert into tversion (major, minor, build) values (1, 1, 0); |
drop function insert_count( |
character varying, character varying, numeric); |
drop function insert_count_stage2( |
character varying, character varying, numeric, timestamp without time zone); |
drop function insert_count_stage3( |
character varying, character varying, numeric, numeric, numeric); |
alter table tsources add column host varchar(100); |
update tsources set host = (select max(name) from thosts); |
alter table tsources alter column host set not null; |
alter table tsources add column base numeric(20,0); |
update tsources |
set base = (select base from tcount |
where source = tsources.name |
order by stamp desc limit 1); |
alter table tsources alter column base set not null; |
alter table tsources alter column base set default 0; |
alter table tsources add column delta numeric(20,0); |
update tsources |
set delta = (select delta from tcount |
where source = tsources.name |
order by stamp desc limit 1); |
alter table tsources alter column delta set not null; |
alter table tsources alter column delta set default 0; |
alter table tsources add column countstamp timestamp; |
update tsources set countstamp = CURRENT_TIMESTAMP; |
alter table tsources alter column countstamp set not null; |
alter table tsources alter column countstamp set default CURRENT_TIMESTAMP; |
alter table tsources add |
CONSTRAINT csources_host FOREIGN KEY (host) REFERENCES thosts(name); |
drop index tcount_main; |
drop index tcount_general; |
alter table tcount drop column host; |
alter table tcount add column value numeric(20,0); |
update tcount set value = base + delta; |
alter table tcount alter column value set not null; |
alter table tcount drop column base; |
alter table tcount drop column delta; |
create index tcount_main on tcount using btree (source, stamp); |
create index tcount_general on tcount using btree (source); |
-- **************************************************************************** |
-- * Functions * |
-- **************************************************************************** |
-- |
-- Insert a given base and delta into the traffic counter. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- @param 3 value of base |
-- @param 4 value of delta |
-- |
CREATE FUNCTION insert_count_stage2( |
varchar(100), numeric(20,0), numeric(20,0), numeric(20,0)) |
RETURNS integer AS ' |
insert into tcount (source, value, stamp) |
values ( |
$1, |
(select (case when $2 >= $4 then $3 else ($3 + $4) end)) + $2, |
CURRENT_TIMESTAMP |
); |
update tsources set |
base = (select (case when $2 >= $4 then $3 else ($3 + $4) end)), |
delta = $2, |
countstamp = CURRENT_TIMESTAMP |
where name = $1; |
select 1; |
' LANGUAGE SQL; |
-- |
-- Insert a new data into the traffic counter. Public |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- |
CREATE FUNCTION insert_count(varchar(100), numeric(20,0)) |
RETURNS integer AS ' |
select insert_count_stage2($1, $2, |
(select base from tsources where name = $1), |
(select delta from tsources where name = $1)); |
' LANGUAGE SQL; |
/sun/TrafficCount/trunk/sql/report_per_day.sql |
---|
0,0 → 1,27 |
select (date (day || ' Sep 2003')) as the_date, |
round(( |
( |
select base + delta from tcount |
where source = 'tun0_in' |
and stamp = ( |
select max(stamp) from tcount |
where date_trunc('day', stamp) = date (day || ' Sep 2003') |
and source = 'tun0_in' |
) |
) |
- |
( |
select base + delta from tcount |
where source = 'tun0_in' |
and stamp = ( |
select max(stamp) from tcount |
where date_trunc('day', stamp) = date (day || ' Sep 2003') - interval '1 day' |
and source = 'tun0_in' |
) |
) |
) / 1024 / 1024) |
as count |
from tdays d |
where day <= 30 |
order by the_date; |
/sun/TrafficCount/trunk/sql/tables_n_functions.sql |
---|
0,0 → 1,154 |
-- |
-- TraficCounter |
-- Copyleft: Anatoli Klassen (anatoli@aksoft.net) |
-- |
-- SQL script for PostgeSQL |
-- |
-- Version 1.2.0 |
-- |
-- **************************************************************************** |
-- * Tables * |
-- **************************************************************************** |
-- just one record with currect database structure version |
CREATE TABLE tversion ( |
major integer not null, |
minor integer not null, |
build integer not null |
); |
insert into tversion (major, minor, build) values (1, 2, 0); |
CREATE TABLE thosts ( |
name varchar(100) constraint chost_name primary key, |
description text |
); |
CREATE TABLE tsources ( |
host varchar(100) not null, |
name varchar(100) constraint csource_name primary key, |
base numeric(20,0) not null default 0, |
delta numeric(20,0) not null default 0, |
countstamp timestamp not null default CURRENT_TIMESTAMP, |
description text, |
CONSTRAINT csources_host FOREIGN KEY (host) REFERENCES thosts(name) |
); |
CREATE TABLE tdays ( |
source varchar(100) not null, |
day DATE not null, |
beginvalue numeric(20,0) not null, |
endvalue numeric(20,0) not null, |
stamp timestamp not null, |
CONSTRAINT cdays_source FOREIGN KEY (source) REFERENCES tsources(name) |
); |
create index idays_main on tdays using btree (source, day); |
create index idays_general on tdays using btree (source); |
-- **************************************************************************** |
-- * Functions * |
-- **************************************************************************** |
-- |
-- Create a new day counter. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 absolute value of the counter |
-- |
CREATE FUNCTION insert_counter_stage4(varchar(100), numeric(20,0)) |
RETURNS integer AS ' |
insert into tdays (source, day, beginvalue, endvalue, stamp) |
values ($1, CURRENT_DATE, |
(select COALESCE(max(endvalue), $2) from tdays |
where source = $1 and day = (CURRENT_DATE - interval \'1 day\')), |
$2, CURRENT_TIMESTAMP); |
select 1; |
' LANGUAGE SQL; |
-- |
-- Update day counter. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 absolute value of the counter |
-- |
CREATE FUNCTION update_counter_stage4(varchar(100), numeric(20,0)) |
RETURNS integer AS ' |
update tdays set endvalue = $2, stamp = CURRENT_TIMESTAMP |
where source = $1 and day = CURRENT_DATE; |
select 1; |
' LANGUAGE SQL; |
-- |
-- Update internal counters. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- @param 3 value of recalculated base |
-- |
CREATE FUNCTION update_counter_stage3( |
varchar(100), numeric(20,0), numeric(20,0)) |
RETURNS integer AS ' |
select (case |
when (select count(*) from tdays |
where day = CURRENT_DATE and source = $1) = 0 |
then insert_counter_stage4($1, $2 + $3) |
else update_counter_stage4($1, $2 + $3) |
end |
); |
update tsources set base = $3, delta = $2, countstamp = CURRENT_TIMESTAMP |
where name = $1; |
select 1; |
' LANGUAGE SQL; |
-- |
-- Update internal counters, calculate real counter value. |
-- Intern use only |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- @param 3 value of base |
-- @param 4 value of delta |
-- |
CREATE FUNCTION update_counter_stage2( |
varchar(100), numeric(20,0), numeric(20,0), numeric(20,0)) |
RETURNS integer AS ' |
select update_counter_stage3($1, $2, |
(select (case when $2 >= $4 then $3 else ($3 + $4) end))); |
' LANGUAGE SQL; |
-- |
-- Update current day counter for given source. Public |
-- |
-- @param 1 source name |
-- @param 2 value of the counter |
-- |
CREATE FUNCTION update_counter(varchar(100), numeric(20,0)) |
RETURNS integer AS ' |
select update_counter_stage2($1, $2, |
(select base from tsources where name = $1), |
(select delta from tsources where name = $1)); |
' LANGUAGE SQL; |
-- **************************************************************************** |
-- * Examples * |
-- **************************************************************************** |
-- New host |
-- insert into thosts (name, description) values ('localhost', ''); |
-- Sources |
-- insert into tsources (host, name) values ('localhost', 'fw_in'); |
-- insert into tsources (host, name) values ('localhost', 'fw_out'); |
/sun/TrafficCount/trunk/sql/report_per_day2.sql |
---|
0,0 → 1,77 |
select |
d.day, |
round((c2.value - c3.value + d2.value - d3.value) / 1024 / 1024) as count |
from |
( select 1 as day |
union select 2 as day |
union select 3 as day |
union select 4 as day |
union select 5 as day |
union select 6 as day |
union select 7 as day |
union select 8 as day |
union select 9 as day |
union select 10 as day |
union select 11 as day |
union select 12 as day |
union select 13 as day |
union select 14 as day |
union select 15 as day |
union select 16 as day |
union select 17 as day |
union select 18 as day |
union select 19 as day |
union select 20 as day |
union select 21 as day |
union select 22 as day |
union select 23 as day |
union select 24 as day |
union select 25 as day |
union select 26 as day |
union select 27 as day |
union select 28 as day |
union select 29 as day |
union select 30 as day |
union select 31 as day |
) as d |
left join tcount c2 |
on c2.source = 'tun0_in' |
and c2.stamp = ( |
select max(stamp) as max_stamp |
from tcount c1 |
where c1.source = 'tun0_in' |
and c1.stamp >= date(d.day || ' Jan 2004') |
and c1.stamp < date(d.day || ' Jan 2004') + interval '1 day' |
group by date_trunc('day', c1.stamp) |
) |
left join tcount c3 |
on c3.source = 'tun0_in' |
and c3.stamp = ( |
select max(stamp) as max_stamp |
from tcount c4 |
where c4.source = 'tun0_in' |
and c4.stamp >= date(d.day || ' Jan 2004') - interval '1 day' |
and c4.stamp < date(d.day || ' Jan 2004') |
group by date_trunc('day', c4.stamp) |
) |
left join tcount d2 |
on d2.source = 'tun0_out' |
and d2.stamp = ( |
select max(stamp) as max_stamp |
from tcount d1 |
where d1.source = 'tun0_out' |
and d1.stamp >= date(d.day || ' Jan 2004') |
and d1.stamp < date(d.day || ' Jan 2004') + interval '1 day' |
group by date_trunc('day', d1.stamp) |
) |
left join tcount d3 |
on d3.source = 'tun0_out' |
and d3.stamp = ( |
select max(stamp) as max_stamp |
from tcount d4 |
where d4.source = 'tun0_out' |
and d4.stamp >= date(d.day || ' Jan 2004') - interval '1 day' |
and d4.stamp < date(d.day || ' Jan 2004') |
group by date_trunc('day', d4.stamp) |
) |
order by d.day; |
/sun/TrafficCount/trunk/sql/report_simple.sql |
---|
0,0 → 1,29 |
select extract(month from stamp) as month, round((base + delta) / 1024 / 1024) |
from tcount |
where source = 'tun0_out' |
and host = 'sun' |
and stamp in ( |
select max(stamp) from tcount |
where source = 'tun0_out' |
and host = 'sun' |
and extract(year from stamp) = 2003 |
group by extract(month from stamp) |
) |
order by month; |
select extract(day from stamp) as day, round((base + delta) / 1024 / 1024) |
from tcount |
where source = 'tun0_out' |
and host = 'sun' |
and stamp in ( |
select max(stamp) from tcount |
where source = 'tun0_out' |
and host = 'sun' |
and extract(year from stamp) = 2003 |
and extract(month from stamp) = 8 |
group by extract(day from stamp) |
) |
order by day; |
/sun/TrafficCount/trunk/sql/report_per_month.sql |
---|
0,0 → 1,31 |
select (date ('2003-' || month || '-01')) as the_date, |
round(( |
( |
select base + delta from tcount |
where source = 'tun0_out' |
and host = 'sun' |
and stamp = ( |
select max(stamp) from tcount |
where date_trunc('month', stamp) = date_trunc('month', date ('2003-' || month || '-01')) |
and source = 'tun0_out' |
and host = 'sun' |
) |
) |
- |
COALESCE(( |
select base + delta from tcount |
where source = 'tun0_out' |
and host = 'sun' |
and stamp = ( |
select max(stamp) from tcount |
where date_trunc('month', stamp) |
= date_trunc('month', date ('2003-' || month || '-01')) - interval '1 month' |
and source = 'tun0_out' |
and host = 'sun' |
) |
), 0) |
) / 1024 / 1024) |
as count |
from tmonths m |
order by the_date; |
/sun/TrafficCount/trunk/sql/report_per_month2.sql |
---|
0,0 → 1,69 |
select |
d.month, |
round(( |
(c2.base+c2.delta) - (c3.base+c3.delta) |
+ (d2.base+d2.delta) - (d3.base+d3.delta) |
) / 1024 / 1024) as count |
from |
( select 1 as month |
union select 2 as month |
union select 3 as month |
union select 4 as month |
union select 5 as month |
union select 6 as month |
union select 7 as month |
union select 8 as month |
union select 9 as month |
union select 10 as month |
union select 11 as month |
union select 12 as month |
) as d |
left join tcount c2 |
on c2.source = 'fw_in' |
and c2.host = 'mercury' |
and c2.stamp = ( |
select max(stamp) as max_stamp |
from tcount c1 |
where c1.source = 'fw_in' |
and c1.host = 'mercury' |
and c1.stamp >= date(d.month || '/1/2003') |
and c1.stamp < date(d.month || '/1/2003') + interval '1 month' |
group by date_trunc('month', c1.stamp) |
) |
left join tcount c3 |
on c3.source = 'fw_in' |
and c3.host = 'mercury' |
and c3.stamp = ( |
select max(stamp) as max_stamp |
from tcount c4 |
where c4.source = 'fw_in' |
and c4.host = 'mercury' |
and c4.stamp >= date(d.month || '/1/2003') - interval '1 month' |
and c4.stamp < date(d.month || '/1/2003') |
group by date_trunc('month', c4.stamp) |
) |
left join tcount d2 |
on d2.source = 'fw_out' |
and d2.host = 'mercury' |
and d2.stamp = ( |
select max(stamp) as max_stamp |
from tcount d1 |
where d1.source = 'fw_out' |
and d1.host = 'mercury' |
and d1.stamp >= date(d.month || '/1/2003') |
and d1.stamp < date(d.month || '/1/2003') + interval '1 month' |
group by date_trunc('month', d1.stamp) |
) |
left join tcount d3 |
on d3.source = 'fw_out' |
and d3.host = 'mercury' |
and d3.stamp = ( |
select max(stamp) as max_stamp |
from tcount d4 |
where d4.source = 'fw_out' |
and d4.host = 'mercury' |
and d4.stamp >= date(d.month || '/1/2003') - interval '1 month' |
and d4.stamp < date(d.month || '/1/2003') |
group by date_trunc('month', d4.stamp) |
) |
order by d.month; |
/sun/TrafficCount/trunk/sql/report.sql |
---|
0,0 → 1,11 |
-- |
-- total traffic report for mercury |
-- |
select d1.source, d2.source, d1.day, |
round((d1.endvalue-d1.beginvalue+d2.endvalue-d2.beginvalue) / 1024 / 1024) as count |
from tdays d1 |
left join tdays d2 on (d2.day = d1.day and d2.source='fw_out') |
where d1.day >= '1 Jan 2004' |
and d1.source = 'fw_in' |
order by d1.source, d1.day; |
/sun/TrafficCount/trunk/sql/update_counter.sh |
---|
0,0 → 1,25 |
#!/bin/sh |
# Settings |
#DB_HOST='localhost' |
#DB_PORT='5432' |
DB_NAME='trafficcount' |
DB_USER='dbadmin' |
DB_PASSWORD='' |
DB_COMMAND='/usr/local/bin/psql' |
# Form DB command |
COMMAND="$DB_COMMAND" |
if test -n "$DB_HOST"; then COMMAND="$COMMAND -h $DB_HOST"; fi |
if test -n "$DB_PORT"; then COMMAND="$COMMAND -p $DB_PORT"; fi |
if test -n "$DB_USER"; then COMMAND="$COMMAND -U $DB_USER"; fi |
if test -n "$DB_PASSWORD"; then COMMAND="$COMMAND -W $DB_PASSWORD"; fi |
# Get values & update |
SOURCE='tun0_in' |
VALUE=`netstat -I tun0 -b | grep '<Link#' | awk '{print $6}'` |
$COMMAND $DB_NAME -c "select insert_count('$SOURCE', $VALUE);" > /dev/null |
SOURCE='tun0_out' |
VALUE=`netstat -I tun0 -b | grep '<Link#' | awk '{print $9}'` |
$COMMAND $DB_NAME -c "select insert_count('$SOURCE', $VALUE);" > /dev/null |
Property changes: |
Added: svn:executable |
/sun/TrafficCount/trunk/traffic.xml |
---|
0,0 → 1,6 |
<Context |
path="/traffic" |
docBase="/home/common/prog/TrafficCount/webapp" |
debug="0" |
privileged="false" |
/> |
/sun/TrafficCount/trunk/build.xml |
---|
0,0 → 1,62 |
<project name="TrafficCount" default="deploy" basedir="."> |
<property name="build.compiler" value="jikes"/> |
<property name="src" location="src"/> |
<property name="classes" location="classes"/> |
<property name="classpath" value=""/> |
<target name="compile"> |
<mkdir dir="${classes}" /> |
<javac |
srcdir="${src}" |
destdir="${classes}" |
classpath="${classpath}:${classes}" |
debug="on" |
extdirs="lib:webapp/WEB-INF/lib" |
/> |
</target> |
<target name="deploy" depends="compile"> |
<copy todir="webapp/WEB-INF/classes"> |
<fileset dir="classes" /> |
</copy> |
<copy todir="webapp/WEB-INF/classes"> |
<fileset |
dir="${src}" |
includes="**/*.properties" |
excludes="**/*_*.properties" |
/> |
</copy> |
<delete> |
<fileset dir="webapp/WEB-INF/classes" includes="**/*_*.properties" /> |
</delete> |
<native2ascii |
encoding="Cp1251" |
src="${src}" |
dest="webapp/WEB-INF/classes" |
includes="**/*_ru.properties" |
/> |
<native2ascii |
encoding="ISO8859_1" |
src="${src}" |
dest="webapp/WEB-INF/classes" |
includes="**/*_de.properties" |
/> |
<copy todir="webapp/WEB-INF/classes" file="conf/log4j.properties" /> |
</target> |
<target name="clean"> |
<delete dir="${classes}"/> |
<delete dir="webapp/WEB-INF/classes"/> |
</target> |
<target name="all" depends="clean,deploy" /> |
</project> |
/sun/TrafficCount/trunk |
---|
Property changes: |
Added: svn:ignore |
+classes |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/struts-tiles.tld |
---|
0,0 → 1,344 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>Tiles Tag Library</shortname> |
<uri>http://jakarta.apache.org/struts/tags-tiles</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.tiles.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>component</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>definition</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>attribute</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerUrl</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>definition</name> |
<tagclass>org.apache.struts.taglib.tiles.DefinitionTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>extends</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.tiles.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>putList</name> |
<tagclass>org.apache.struts.taglib.tiles.PutListTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>add</name> |
<tagclass>org.apache.struts.taglib.tiles.AddTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.tiles.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>getAsString</name> |
<tagclass>org.apache.struts.taglib.tiles.GetAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>useAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.UseAttributeTag</tagclass> |
<teiclass>org.apache.struts.taglib.tiles.UseAttributeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>importAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.ImportAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>initComponentDefinitions</name> |
<tagclass>org.apache.struts.taglib.tiles.InitDefinitionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>file</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-collections.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/jiu.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-lang.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/jakarta-oro.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-fileupload.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-validator.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-beanutils.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-digester.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-logging.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/log4j.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-dbcp.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-pool.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/commons-resources.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/lib/struts.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/struts-config.xml |
---|
0,0 → 1,88 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> |
<struts-config> |
<form-beans> |
<form-bean |
name="pathForm" |
type="ak.photoalbum.webapp.PathForm" |
/> |
</form-beans> |
<global-forwards> |
<forward |
name="error" |
path="/error.jsp" |
/> |
</global-forwards> |
<action-mappings> |
<action |
path="/index" |
type="ak.photoalbum.webapp.IndexAction" |
name="pathForm" |
validate="true" |
scope="request" |
> |
<forward name="success" path="/index.jsp"/> |
</action> |
<action |
path="/page" |
type="ak.photoalbum.webapp.PageAction" |
name="pathForm" |
validate="true" |
scope="request" |
> |
<forward name="success" path="/page.jsp"/> |
</action> |
<action |
path="/dir" |
type="ak.photoalbum.webapp.ImageAction" |
parameter="dir" |
name="pathForm" |
validate="true" |
scope="request" |
/> |
<action |
path="/small" |
type="ak.photoalbum.webapp.ImageAction" |
parameter="small" |
name="pathForm" |
validate="true" |
scope="request" |
/> |
<action |
path="/medium" |
type="ak.photoalbum.webapp.ImageAction" |
parameter="medium" |
name="pathForm" |
validate="true" |
scope="request" |
/> |
<action |
path="/origin" |
type="ak.photoalbum.webapp.ImageAction" |
parameter="origin" |
name="pathForm" |
validate="true" |
scope="request" |
/> |
<action |
path="/buildCache" |
type="ak.photoalbum.webapp.BuildCacheAction" |
> |
<forward name="success" path="/cacheOk.jsp"/> |
</action> |
</action-mappings> |
<message-resources parameter="resources.application"/> |
</struts-config> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/struts-nested.tld |
---|
0,0 → 1,2870 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>nested</shortname> |
<uri>http://jakarta.apache.org/struts/tags-nested</uri> |
<tag> |
<name>nest</name> |
<tagclass>org.apache.struts.taglib.nested.NestedPropertyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>writeNesting</name> |
<tagclass>org.apache.struts.taglib.nested.NestedWriteNestingTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>root</name> |
<tagclass>org.apache.struts.taglib.nested.NestedRootTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedDefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedMessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedSizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedWriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedCheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedHiddenTag</tagclass> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedPasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedRadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedIterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.nested.logic.NestedIterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/struts-html.tld |
---|
0,0 → 1,2971 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>html</shortname> |
<uri>http://jakarta.apache.org/struts/tags-html</uri> |
<tag> |
<name>base</name> |
<tagclass>org.apache.struts.taglib.html.BaseTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>server</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>button</name> |
<tagclass>org.apache.struts.taglib.html.ButtonTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>cancel</name> |
<tagclass>org.apache.struts.taglib.html.CancelTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.html.CheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.html.ErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.html.FileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.html.FormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focusIndex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>frame</name> |
<tagclass>org.apache.struts.taglib.html.FrameTag</tagclass> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameborder</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>longdesc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginheight</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginwidth</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>noresize</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scrolling</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.html.HiddenTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>write</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>html</name> |
<tagclass>org.apache.struts.taglib.html.HtmlTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>xhtml</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.html.ImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.html.ImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>javascript</name> |
<tagclass>org.apache.struts.taglib.html.JavascriptValidatorTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>cdata</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>dynamicJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>staticJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>htmlComment</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.html.LinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.html.MessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.html.MultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>option</name> |
<tagclass>org.apache.struts.taglib.html.OptionTag</tagclass> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.html.OptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.html.OptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.html.PasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.html.RadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>idName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>reset</name> |
<tagclass>org.apache.struts.taglib.html.ResetTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>rewrite</name> |
<tagclass>org.apache.struts.taglib.html.RewriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.html.SelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.html.SubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.html.TextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.html.TextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>xhtml</name> |
<tagclass>org.apache.struts.taglib.html.XhtmlTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
</taglib> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/struts-bean.tld |
---|
0,0 → 1,382 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>bean</shortname> |
<uri>http://jakarta.apache.org/struts/tags-bean</uri> |
<tag> |
<name>cookie</name> |
<tagclass>org.apache.struts.taglib.bean.CookieTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.CookieTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.bean.DefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>header</name> |
<tagclass>org.apache.struts.taglib.bean.HeaderTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.HeaderTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>include</name> |
<tagclass>org.apache.struts.taglib.bean.IncludeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>page</name> |
<tagclass>org.apache.struts.taglib.bean.PageTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.PageTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>parameter</name> |
<tagclass>org.apache.struts.taglib.bean.ParameterTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ParameterTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>resource</name> |
<tagclass>org.apache.struts.taglib.bean.ResourceTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>input</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.bean.SizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>struts</name> |
<tagclass>org.apache.struts.taglib.bean.StrutsTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formBean</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>mapping</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.bean.WriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/validation.xml |
---|
0,0 → 1,58 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<form-validation> |
<!-- |
This is a blank Validator form file with a commented examples. |
--> |
<global> |
<!-- An example global constant |
<constant> |
<constant-name>postalCode</constant-name> |
<constant-value>^\d{5}\d*$</constant-value> |
</constant> |
end example--> |
</global> |
<formset> |
<!-- An example form |
<form name="logonForm"> |
<field |
property="username" |
depends="required"> |
<arg0 key="logonForm.username"/> |
</field> |
<field |
property="password" |
depends="required,mask"> |
<arg0 key="logonForm.password"/> |
<var> |
<var-name>mask</var-name> |
<var-value>^[0-9a-zA-Z]*$</var-value> |
</var> |
</field> |
</form> |
end example form --> |
</formset> |
<!-- An example formset for another locale |
<formset language="fr"> |
<constant> |
<constant-name>postalCode</constant-name> |
<constant-value>^[0-9a-zA-Z]*$</constant-value> |
</constant> |
</formset> |
--> |
</form-validation> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/validator-rules.xml |
---|
0,0 → 1,988 |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<!-- |
This file contains the default Struts Validator pluggable validator |
definitions. It should be placed somewhere under /WEB-INF and |
referenced in the struts-config.xml under the plug-in element |
for the ValidatorPlugIn. |
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> |
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml, |
/WEB-INF/validation.xml"/> |
</plug-in> |
These are the default error messages associated with |
each validator defined in this file. They should be |
added to your projects ApplicationResources.properties |
file or you can associate new ones by modifying the |
pluggable validators msg attributes in this file. |
# Struts Validator Error Messages |
errors.required={0} is required. |
errors.minlength={0} can not be less than {1} characters. |
errors.maxlength={0} can not be greater than {1} characters. |
errors.invalid={0} is invalid. |
errors.byte={0} must be a byte. |
errors.short={0} must be a short. |
errors.integer={0} must be an integer. |
errors.long={0} must be a long. |
errors.float={0} must be a float. |
errors.double={0} must be a double. |
errors.date={0} is not a date. |
errors.range={0} is not in the range {1} through {2}. |
errors.creditcard={0} is an invalid credit card number. |
errors.email={0} is an invalid e-mail address. |
--> |
<form-validation> |
<global> |
<validator name="required" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequired" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
<javascript><![CDATA[ |
function validateRequired(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRequired = new required(); |
for (x in oRequired) { |
var field = form[oRequired[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'file' || |
field.type == 'select-one' || |
field.type == 'radio' || |
field.type == 'password') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value == '') { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oRequired[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="requiredif" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequiredIf" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
org.apache.commons.validator.Validator, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
</validator> |
<validator name="minlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMinLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.minlength"> |
<javascript><![CDATA[ |
function validateMinLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMinLength = new minlength(); |
for (x in oMinLength) { |
if (form[oMinLength[x][0]].type == 'text' || |
form[oMinLength[x][0]].type == 'textarea') { |
var iMin = parseInt(oMinLength[x][2]("minlength")); |
if (form[oMinLength[x][0]].value.length < iMin) { |
if (i == 0) { |
focusField = form[oMinLength[x][0]]; |
} |
fields[i++] = oMinLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="maxlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMaxLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.maxlength"> |
<javascript><![CDATA[ |
function validateMaxLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMaxLength = new maxlength(); |
for (x in oMaxLength) { |
if (form[oMaxLength[x][0]].type == 'text' || |
form[oMaxLength[x][0]].type == 'textarea') { |
var iMax = parseInt(oMaxLength[x][2]("maxlength")); |
if (form[oMaxLength[x][0]].value.length > iMax) { |
if (i == 0) { |
focusField = form[oMaxLength[x][0]]; |
} |
fields[i++] = oMaxLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="mask" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMask" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.invalid"> |
<javascript><![CDATA[ |
function validateMask(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMasked = new mask(); |
for (x in oMasked) { |
if ((form[oMasked[x][0]].type == 'text' || |
form[oMasked[x][0]].type == 'textarea' || |
form[oMasked[x][0]].type == 'password') && |
(form[oMasked[x][0]].value.length > 0)) { |
if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) { |
if (i == 0) { |
focusField = form[oMasked[x][0]]; |
} |
fields[i++] = oMasked[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function matchPattern(value, mask) { |
var bMatched = mask.exec(value); |
if (!bMatched) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="byte" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateByte" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.byte" |
jsFunctionName="ByteValidations"> |
<javascript><![CDATA[ |
function validateByte(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oByte = new ByteValidations(); |
for (x in oByte) { |
var field = form[oByte[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oByte[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="short" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateShort" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.short" |
jsFunctionName="ShortValidations"> |
<javascript><![CDATA[ |
function validateShort(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oShort = new ShortValidations(); |
for (x in oShort) { |
var field = form[oShort[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oShort[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="integer" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateInteger" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.integer" |
jsFunctionName="IntegerValidations"> |
<javascript><![CDATA[ |
function validateInteger(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oInteger = new IntegerValidations(); |
for (x in oInteger) { |
var field = form[oInteger[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
if (!isAllDigits(value)) { |
bValid = false; |
} else { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oInteger[x][1]; |
bValid = false; |
} |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isAllDigits(argvalue) { |
argvalue = argvalue.toString(); |
var validChars = "0123456789"; |
var startFrom = 0; |
if (argvalue.substring(0, 2) == "0x") { |
validChars = "0123456789abcdefABCDEF"; |
startFrom = 2; |
} else if (argvalue.charAt(0) == "0") { |
validChars = "01234567"; |
startFrom = 1; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="long" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateLong" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.long"/> |
<validator name="float" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloat" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.float" |
jsFunctionName="FloatValidations"> |
<javascript><![CDATA[ |
function validateFloat(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oFloat = new FloatValidations(); |
for (x in oFloat) { |
var field = form[oFloat[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseFloat(value); |
if (isNaN(iValue)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oFloat[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="double" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDouble" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.double"/> |
<validator name="date" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDate" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.date" |
jsFunctionName="DateValidations"> |
<javascript><![CDATA[ |
function validateDate(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oDate = new DateValidations(); |
for (x in oDate) { |
var value = form[oDate[x][0]].value; |
var datePattern = oDate[x][2]("datePatternStrict"); |
if ((form[oDate[x][0]].type == 'text' || |
form[oDate[x][0]].type == 'textarea') && |
(value.length > 0) && |
(datePattern.length > 0)) { |
var MONTH = "MM"; |
var DAY = "dd"; |
var YEAR = "yyyy"; |
var orderMonth = datePattern.indexOf(MONTH); |
var orderDay = datePattern.indexOf(DAY); |
var orderYear = datePattern.indexOf(YEAR); |
if ((orderDay < orderYear && orderDay > orderMonth)) { |
var iDelim1 = orderMonth + MONTH.length; |
var iDelim2 = orderDay + DAY.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderDay && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderDay) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[2], matched[1], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth < orderYear && orderMonth > orderDay)) { |
var iDelim1 = orderDay + DAY.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[1], matched[2], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth > orderYear && orderMonth < orderDay)) { |
var iDelim1 = orderYear + YEAR.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); |
} else if (iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[3], matched[2], matched[1])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isValidDate(day, month, year) { |
if (month < 1 || month > 12) { |
return false; |
} |
if (day < 1 || day > 31) { |
return false; |
} |
if ((month == 4 || month == 6 || month == 9 || month == 11) && |
(day == 31)) { |
return false; |
} |
if (month == 2) { |
var leap = (year % 4 == 0 && |
(year % 100 != 0 || year % 400 == 0)); |
if (day>29 || (day == 29 && !leap)) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<!-- range is deprecated use intRange instead --> |
<validator name="range" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateRange(form) { |
return validateIntRange(form); |
}]]> |
</javascript> |
</validator> |
<validator name="intRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateIntRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new intRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var iMin = parseInt(oRange[x][2]("min")); |
var iMax = parseInt(oRange[x][2]("max")); |
var iValue = parseInt(form[oRange[x][0]].value); |
if (!(iValue >= iMin && iValue <= iMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="floatRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloatRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="float" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateFloatRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new floatRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var fMin = parseFloat(oRange[x][2]("min")); |
var fMax = parseFloat(oRange[x][2]("max")); |
var fValue = parseFloat(form[oRange[x][0]].value); |
if (!(fValue >= fMin && fValue <= fMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="creditCard" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateCreditCard" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.creditcard"> |
<javascript><![CDATA[ |
function validateCreditCard(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oCreditCard = new creditCard(); |
for (x in oCreditCard) { |
if ((form[oCreditCard[x][0]].type == 'text' || |
form[oCreditCard[x][0]].type == 'textarea') && |
(form[oCreditCard[x][0]].value.length > 0)) { |
if (!luhnCheck(form[oCreditCard[x][0]].value)) { |
if (i == 0) { |
focusField = form[oCreditCard[x][0]]; |
} |
fields[i++] = oCreditCard[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl |
*/ |
function luhnCheck(cardNumber) { |
if (isLuhnNum(cardNumber)) { |
var no_digit = cardNumber.length; |
var oddoeven = no_digit & 1; |
var sum = 0; |
for (var count = 0; count < no_digit; count++) { |
var digit = parseInt(cardNumber.charAt(count)); |
if (!((count & 1) ^ oddoeven)) { |
digit *= 2; |
if (digit > 9) digit -= 9; |
}; |
sum += digit; |
}; |
if (sum == 0) return false; |
if (sum % 10 == 0) return true; |
}; |
return false; |
} |
function isLuhnNum(argvalue) { |
argvalue = argvalue.toString(); |
if (argvalue.length == 0) { |
return false; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if ((argvalue.substring(n, n+1) < "0") || |
(argvalue.substring(n,n+1) > "9")) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="email" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateEmail" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.email"> |
<javascript><![CDATA[ |
function validateEmail(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oEmail = new email(); |
for (x in oEmail) { |
if ((form[oEmail[x][0]].type == 'text' || |
form[oEmail[x][0]].type == 'textarea') && |
(form[oEmail[x][0]].value.length > 0)) { |
if (!checkEmail(form[oEmail[x][0]].value)) { |
if (i == 0) { |
focusField = form[oEmail[x][0]]; |
} |
fields[i++] = oEmail[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), |
* http://javascript.internet.com |
*/ |
function checkEmail(emailStr) { |
if (emailStr.length == 0) { |
return true; |
} |
var emailPat=/^(.+)@(.+)$/; |
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; |
var validChars="\[^\\s" + specialChars + "\]"; |
var quotedUser="(\"[^\"]*\")"; |
var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; |
var atom=validChars + '+'; |
var word="(" + atom + "|" + quotedUser + ")"; |
var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); |
var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); |
var matchArray=emailStr.match(emailPat); |
if (matchArray == null) { |
return false; |
} |
var user=matchArray[1]; |
var domain=matchArray[2]; |
if (user.match(userPat) == null) { |
return false; |
} |
var IPArray = domain.match(ipDomainPat); |
if (IPArray != null) { |
for (var i = 1; i <= 4; i++) { |
if (IPArray[i] > 255) { |
return false; |
} |
} |
return true; |
} |
var domainArray=domain.match(domainPat); |
if (domainArray == null) { |
return false; |
} |
var atomPat=new RegExp(atom,"g"); |
var domArr=domain.match(atomPat); |
var len=domArr.length; |
if ((domArr[domArr.length-1].length < 2) || |
(domArr[domArr.length-1].length > 3)) { |
return false; |
} |
if (len < 2) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
</global> |
</form-validation> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/web.xml |
---|
0,0 → 1,107 |
<?xml version="1.0" encoding="ISO-8859-1"?> |
<!DOCTYPE web-app |
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" |
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> |
<web-app> |
<!-- Standard Action Servlet Configuration (with debugging) --> |
<servlet> |
<servlet-name>action</servlet-name> |
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> |
<init-param> |
<param-name>config</param-name> |
<param-value>/WEB-INF/struts-config.xml</param-value> |
</init-param> |
<init-param> |
<param-name>debug</param-name> |
<param-value>2</param-value> |
</init-param> |
<init-param> |
<param-name>detail</param-name> |
<param-value>2</param-value> |
</init-param> |
<load-on-startup>2</load-on-startup> |
</servlet> |
<servlet> |
<servlet-name>init</servlet-name> |
<servlet-class>ak.photoalbum.webapp.InitServlet</servlet-class> |
<init-param> |
<param-name>images root</param-name> |
<param-value>/opt/data/photos</param-value> |
</init-param> |
<init-param> |
<param-name>images mask</param-name> |
<param-value>*.jpeg;*.jpg</param-value> |
</init-param> |
<init-param> |
<param-name>cache dir</param-name> |
<param-value>/opt/data/photos/.cache</param-value> |
</init-param> |
<init-param> |
<param-name>thumbnail format</param-name> |
<param-value>jpg</param-value> |
</init-param> |
<init-param> |
<param-name>columns</param-name> |
<param-value>5</param-value> |
</init-param> |
<init-param> |
<param-name>dir template</param-name> |
<param-value>/home/common/prog/PhotoAlbum/webapp/images/dir_template.gif</param-value> |
</init-param> |
<init-param> |
<param-name>dir thumbnails positions</param-name> |
<param-value> |
5, 9,40,40,c,c; |
47, 9,40,40,c,c; |
5,50,40,40,c,c; |
47,50,40,40,c,c |
</param-value> |
</init-param> |
<load-on-startup>1</load-on-startup> |
</servlet> |
<!-- Standard Action Servlet Mapping --> |
<servlet-mapping> |
<servlet-name>action</servlet-name> |
<url-pattern>*.do</url-pattern> |
</servlet-mapping> |
<!-- The Usual Welcome File List --> |
<welcome-file-list> |
<welcome-file>index.do</welcome-file> |
</welcome-file-list> |
<!-- Struts Tag Library Descriptors --> |
<taglib> |
<taglib-uri>/tags/struts-bean</taglib-uri> |
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-html</taglib-uri> |
<taglib-location>/WEB-INF/struts-html.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-logic</taglib-uri> |
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-nested</taglib-uri> |
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-tiles</taglib-uri> |
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> |
</taglib> |
</web-app> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/tiles-defs.xml |
---|
0,0 → 1,42 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> |
<!-- |
This is a blank Tiles definition file with a commented example. |
--> |
<tiles-definitions> |
<!-- sample tiles definitions |
<definition name=".mainLayout" path="/common/layouts/classicLayout.jsp"> |
<put name="title" value="Sample Page Title" /> |
<put name="header" value="/common/header.jsp" /> |
<put name="menu" value=".mainMenu" /> |
<put name="footer" value="/common/footer.jsp" /> |
<put name="body" value=".portal.body" /> |
</definition> |
<definition name=".mainMenu" path="/common/layouts/vboxLayout.jsp" > |
<putList name="list" > |
<add value=".menu.links" /> |
<add value=".menu.taglib.references" /> |
<add value=".menu.printer.friendly" /> |
<add value=".menu.old.documents" /> |
</putList> |
</definition> |
<definition name="aPage" extends=".mainLayout"> |
<put name="title" value="Another Title" /> |
<put name="body" value=".aPage.body" /> |
</definition> |
end samples --> |
<definition name="${YOUR_DEFINITION_HERE}"> |
</definition> |
</tiles-definitions> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/struts-template.tld |
---|
0,0 → 1,73 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>template</shortname> |
<uri>http://jakarta.apache.org/struts/tags-template</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.template.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.template.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.template.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF/struts-logic.tld |
---|
0,0 → 1,642 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>logic</shortname> |
<uri>http://jakarta.apache.org/struts/tags-logic</uri> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.logic.EmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.logic.EqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forward</name> |
<tagclass>org.apache.struts.taglib.logic.ForwardTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.logic.IterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.logic.LessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.logic.LessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.logic.MatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.logic.NotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.logic.NotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.logic.NotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.logic.NotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.logic.PresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>redirect</name> |
<tagclass>org.apache.struts.taglib.logic.RedirectTag</tagclass> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/PhotoAlbum/trunk/webapp/WEB-INF |
---|
Property changes: |
Added: svn:ignore |
+classes |
/sun/PhotoAlbum/trunk/webapp/page.jsp |
---|
0,0 → 1,57 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<html> |
<head> |
<title><bean:write name="entry" property="title" /></title> |
</head> |
<body bgcolor="white"> |
<h1><bean:write name="entry" property="title" /></h1> |
<p> |
<logic:empty name="prevEntry" property="path"> |
<< |
</logic:empty> |
<logic:notEmpty name="prevEntry" property="path"> |
<logic:equal name="prevEntry" property="isDir" value="true"> |
<a href="index.do?path=<bean:write name="prevEntry" property="path" />"><<</a> |
</logic:equal> |
<logic:equal name="prevEntry" property="isDir" value="false"> |
<a href="page.do?path=<bean:write name="prevEntry" property="path" />"><<</a> |
</logic:equal> |
</logic:notEmpty> |
<logic:notPresent name="index" property="path"> |
|
</logic:notPresent> |
<logic:present name="index" property="path"> |
<a href="index.do?path=<bean:write name="index" property="path" />">Index</a> |
</logic:present> |
<logic:empty name="nextEntry" property="path"> |
>> |
</logic:empty> |
<logic:notEmpty name="nextEntry" property="path"> |
<logic:equal name="nextEntry" property="isDir" value="true"> |
<a href="index.do?path=<bean:write name="nextEntry" property="path" />">>></a> |
</logic:equal> |
<logic:equal name="nextEntry" property="isDir" value="false"> |
<a href="page.do?path=<bean:write name="nextEntry" property="path" />">>></a> |
</logic:equal> |
</logic:notEmpty> |
</p> |
<p><a href="origin.do?path=<bean:write name="entry" property="path" />" |
><img src="medium.do?path=<bean:write name="entry" property="path" />" |
alt="<bean:write name="entry" property="title" />" |
width="<bean:write name="entry" property="width" />" |
height="<bean:write name="entry" property="height" />" |
border=0></a></p> |
</body> |
</html> |
/sun/PhotoAlbum/trunk/webapp/cacheOk.jsp |
---|
0,0 → 1,18 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<html> |
<head> |
<title>Build Cache: OK</title> |
</head> |
<body bgcolor="white"> |
<h1>Build Cache: OK</h1> |
</body> |
</html> |
/sun/PhotoAlbum/trunk/webapp/index.do |
---|
--- PhotoAlbum/trunk/webapp/index.jsp (nonexistent) |
+++ PhotoAlbum/trunk/webapp/index.jsp (revision 958) |
@@ -0,0 +1,98 @@ |
+<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
+<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
+<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
+ |
+<html> |
+ |
+<head> |
+<logic:empty name="dir"> |
+ <title>Index</title> |
+</logic:empty> |
+<logic:notEmpty name="dir"> |
+ <title>Index of <bean:write name="dir" /></title> |
+</logic:notEmpty> |
+</head> |
+ |
+<body bgcolor="white"> |
+ |
+<logic:empty name="dir"> |
+ <h1>Index</h1> |
+</logic:empty> |
+<logic:notEmpty name="dir"> |
+ <h1>Index of <bean:write name="dir" /></h1> |
+</logic:notEmpty> |
+ |
+<p> |
+ <logic:empty name="prevEntry" property="path"> |
+ << |
+ </logic:empty> |
+ <logic:notEmpty name="prevEntry" property="path"> |
+ <logic:equal name="prevEntry" property="isDir" value="true"> |
+ <a href="index.do?path=<bean:write name="prevEntry" property="path" />"><<</a> |
+ </logic:equal> |
+ <logic:equal name="prevEntry" property="isDir" value="false"> |
+ <a href="page.do?path=<bean:write name="prevEntry" property="path" />"><<</a> |
+ </logic:equal> |
+ </logic:notEmpty> |
+ |
+ <logic:notPresent name="top" property="path"> |
+ |
+ </logic:notPresent> |
+ <logic:present name="top" property="path"> |
+ <a href="index.do?path=<bean:write name="top" property="path" />">Index</a> |
+ </logic:present> |
+ |
+ <logic:empty name="nextEntry" property="path"> |
+ >> |
+ </logic:empty> |
+ <logic:notEmpty name="nextEntry" property="path"> |
+ <logic:equal name="nextEntry" property="isDir" value="true"> |
+ <a href="index.do?path=<bean:write name="nextEntry" property="path" />">>></a> |
+ </logic:equal> |
+ <logic:equal name="nextEntry" property="isDir" value="false"> |
+ <a href="page.do?path=<bean:write name="nextEntry" property="path" />">>></a> |
+ </logic:equal> |
+ </logic:notEmpty> |
+</p> |
+ |
+<table border=1 width=100%> |
+<logic:iterate name="index" id="row"> |
+ <tr> |
+ <logic:iterate name="row" id="entry"> |
+ <logic:present name="entry"> |
+ <logic:equal name="entry" property="isDir" value="true"> |
+ <td width=20%> |
+ <a href="index.do?path=<bean:write name="entry" property="path" />"> |
+ <img src="dir.do?path=<bean:write name="entry" property="path" />" |
+ alt="<bean:write name="entry" property="title" />" |
+ width="<bean:write name="entry" property="width" />" |
+ height="<bean:write name="entry" property="height" />" |
+ border=0><br> |
+ <bean:write name="entry" property="title" /> |
+ </a> |
+ </td> |
+ </logic:equal> |
+ <logic:equal name="entry" property="isDir" value="false"> |
+ <td width=20%> |
+ <a href="page.do?path=<bean:write name="entry" property="path" />"> |
+ <img src="small.do?path=<bean:write name="entry" property="path" />" |
+ alt="<bean:write name="entry" property="title" />" |
+ width="<bean:write name="entry" property="width" />" |
+ height="<bean:write name="entry" property="height" />" |
+ border=0><br> |
+ <bean:write name="entry" property="title" /> |
+ </a> |
+ </td> |
+ </logic:equal> |
+ </logic:present> |
+ <logic:notPresent name="entry"> |
+ <td width=20%> </td> |
+ </logic:notPresent> |
+ </logic:iterate> |
+ </tr> |
+</logic:iterate> |
+</table> |
+ |
+</body> |
+ |
+</html> |
/sun/PhotoAlbum/trunk/webapp/images/dir_template.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/images/dir.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/webapp/images/dir2.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/todo.txt |
---|
0,0 → 1,9 |
PhotoAlbum TODO |
1. Sometimes by changing image size (or image rotation) the cached thumbnail is not recreated. |
2. Cached files are not deleted where origins are. |
3. Split thumbnal and cache. |
4. Limits for memory caches (?). |
5. Design. |
6. Speed up thumbnals creation (m.b. by decreasing quality). |
/sun/PhotoAlbum/trunk/conf/log4j.properties |
---|
0,0 → 1,9 |
log4j.rootLogger=warn, stdout |
log4j.appender.stdout=org.apache.log4j.ConsoleAppender |
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout |
log4j.appender.stdout.layout.ConversionPattern=[%t] %-5p %c - %m%n |
log4j.logger.ak=warn |
log4j.logger.ak.photoalbum=warn |
log4j.logger.ak.photoalbum.webapp=info |
/sun/PhotoAlbum/trunk/lib/servlet.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/PhotoAlbum/trunk/src/marcoschmidt/image/ImageInfo.java |
---|
0,0 → 1,1241 |
/* |
* ImageInfo.java |
* |
* Version 1.3 |
* |
* A Java class to determine image width, height and color depth for |
* a number of image file formats. |
* |
* Written by Marco Schmidt <marcoschmidt@users.sourceforge.net> |
* |
* Contributed to the Public Domain. |
* |
* Last modification 2002-06-17 |
*/ |
package marcoschmidt.image; |
import java.io.DataInput; |
import java.io.FileInputStream; |
import java.io.InputStream; |
import java.io.IOException; |
import java.util.Vector; |
/** |
* Get file format, image resolution, number of bits per pixel and optionally |
* number of images, comments and physical resolution from |
* JPEG, GIF, BMP, PCX, PNG, IFF, RAS, PBM, PGM, PPM, PSD and SWF files |
* (or input streams). |
* <p> |
* Use the class like this: |
* <pre> |
* ImageInfo ii = new ImageInfo(); |
* ii.setInput(in); // in can be InputStream or RandomAccessFile |
* ii.setDetermineImageNumber(true); // default is false |
* ii.setCollectComments(true); // default is false |
* if (!ii.check()) { |
* System.err.println("Not a supported image file format."); |
* return; |
* } |
* System.out.println(ii.getFormatName() + ", " + ii.getMimeType() + |
* ", " + ii.getWidth() + " x " + ii.getHeight() + " pixels, " + |
* ii.getBitsPerPixel() + " bits per pixel, " + ii.getNumberOfImages() + |
* " image(s), " + ii.getNumberOfComments() + " comment(s)."); |
* </pre> |
* You can also use this class as a command line program. |
* Call it with a number of image file names as parameters: |
* <pre> |
* java ImageInfo *.jpg *.png *.gif |
* </pre> |
* or call it without parameters and pipe data to it: |
* <pre> |
* cat image.jpg | java ImageInfo |
* </pre> |
* <p> |
* Known limitations: |
* <ul> |
* <li>When the determination of the number of images is turned off, GIF bits |
* per pixel are only read from the global header. |
* For some GIFs, local palettes change this to a typically larger |
* value. To be certain to get the correct color depth, call |
* setDetermineImageNumber(true) before calling check(). |
* The complete scan over the GIF file will take additional time.</li> |
* <li>Transparency information is not included in the bits per pixel count. |
* Actually, it was my decision not to include those bits, so it's a feature! ;-)</li> |
* </ul> |
* <p> |
* Requirements: |
* <ul> |
* <li>Java 1.1 or higher</li> |
* </ul> |
* <p> |
* The latest version can be found at <a href="http://www.geocities.com/marcoschmidt.geo/image-info.html">http://www.geocities.com/marcoschmidt.geo/image-info.html</a>. |
* <p> |
* Written by <a href="mailto:marcoschmidt@users.sourceforge.net">Marco Schmidt</a>. |
* <p> |
* This class is contributed to the Public Domain. |
* Use it at your own risk. |
* <p> |
* Last modification 2002-06-17. |
* <p> |
* History: |
* <ul> |
* <li><strong>2001-08-24</strong> Initial version.</li> |
* <li><strong>2001-10-13</strong> Added support for the file formats BMP and PCX.</li> |
* <li><strong>2001-10-16</strong> Fixed bug in read(int[], int, int) that returned |
* <li><strong>2002-01-22</strong> Added support for file formats Amiga IFF and Sun Raster (RAS).</li> |
* <li><strong>2002-01-24</strong> Added support for file formats Portable Bitmap / Graymap / Pixmap (PBM, PGM, PPM) and Adobe Photoshop (PSD). |
* Added new method getMimeType() to return the MIME type associated with a particular file format.</li> |
* <li><strong>2002-03-15</strong> Added support to recognize number of images in file. Only works with GIF. |
* Use {@link #setDetermineImageNumber} with <code>true</code> as argument to identify animated GIFs |
* ({@link #getNumberOfImages()} will return a value larger than <code>1</code>).</li> |
* <li><strong>2002-04-10</strong> Fixed a bug in the feature 'determine number of images in animated GIF' introduced with version 1.1. |
* Thanks to Marcelo P. Lima for sending in the bug report. |
* Released as 1.1.1.</li> |
* <li><strong>2002-04-18</strong> Added {@link #setCollectComments(boolean)}. |
* That new method lets the user specify whether textual comments are to be |
* stored in an internal list when encountered in an input image file / stream. |
* Added two methods to return the physical width and height of the image in dpi: |
* {@link #getPhysicalWidthDpi()} and {@link #getPhysicalHeightDpi()}. |
* If the physical resolution could not be retrieved, these methods return <code>-1</code>. |
* </li> |
* <li><strong>2002-04-23</strong> Added support for the new properties physical resolution and |
* comments for some formats. Released as 1.2.</li> |
* <li><strong>2002-06-17</strong> Added support for SWF, sent in by Michael Aird. |
* Changed checkJpeg() so that other APP markers than APP0 will not lead to a failure anymore. |
* Released as 1.3.</li> |
* </ul> |
*/ |
public class ImageInfo { |
/** |
* Return value of {@link #getFormat()} for JPEG streams. |
* ImageInfo can extract physical resolution and comments |
* from JPEGs (only from APP0 headers). |
* Only one image can be stored in a file. |
*/ |
public static final int FORMAT_JPEG = 0; |
/** |
* Return value of {@link #getFormat()} for GIF streams. |
* ImageInfo can extract comments from GIFs and count the number |
* of images (GIFs with more than one image are animations). |
* If you know of a place where GIFs store the physical resolution |
* of an image, please |
* <a href="http://www.geocities.com/marcoschmidt.geo/contact.html">send me a mail</a>! |
*/ |
public static final int FORMAT_GIF = 1; |
/** |
* Return value of {@link #getFormat()} for PNG streams. |
* PNG only supports one image per file. |
* Both physical resolution and comments can be stored with PNG, |
* but ImageInfo is currently not able to extract those. |
*/ |
public static final int FORMAT_PNG = 2; |
/** |
* Return value of {@link #getFormat()} for BMP streams. |
* BMP only supports one image per file. |
* BMP does not allow for comments. |
* The physical resolution can be stored. |
* <em>The specification that I have says that the values must be |
* interpreted as dots per meter. However, given that I only |
* encounter typical dpi values like 72 or 300, I currently |
* consider those values dpi. Maybe someone can shed some light |
* on this, please send me a mail in that case.</em> |
*/ |
public static final int FORMAT_BMP = 3; |
/** |
* Return value of {@link #getFormat()} for PCX streams. |
* PCX does not allow for comments or more than one image per file. |
* However, the physical resolution can be stored. |
*/ |
public static final int FORMAT_PCX = 4; |
/** |
* Return value of {@link #getFormat()} for IFF streams. |
*/ |
public static final int FORMAT_IFF = 5; |
/** |
* Return value of {@link #getFormat()} for RAS streams. |
* Sun Raster allows for one image per file only and is not able to |
* store physical resolution or comments. |
*/ |
public static final int FORMAT_RAS = 6; |
/** Return value of {@link #getFormat()} for PBM streams. */ |
public static final int FORMAT_PBM = 7; |
/** Return value of {@link #getFormat()} for PGM streams. */ |
public static final int FORMAT_PGM = 8; |
/** Return value of {@link #getFormat()} for PPM streams. */ |
public static final int FORMAT_PPM = 9; |
/** Return value of {@link #getFormat()} for PSD streams. */ |
public static final int FORMAT_PSD = 10; |
/** Return value of {@link #getFormat()} for SWF (Shockwave) streams. */ |
public static final int FORMAT_SWF = 11; |
/** |
* The names of all supported file formats. |
* The FORMAT_xyz int constants can be used as index values for |
* this array. |
*/ |
private static final String[] FORMAT_NAMES = |
{"JPEG", "GIF", "PNG", "BMP", "PCX", |
"IFF", "RAS", "PBM", "PGM", "PPM", |
"PSD", "SWF"}; |
/** |
* The names of the MIME types for all supported file formats. |
* The FORMAT_xyz int constants can be used as index values for |
* this array. |
*/ |
private static final String[] MIME_TYPE_STRINGS = |
{"image/jpeg", "image/gif", "image/png", "image/bmp", "image/pcx", |
"image/iff", "image/ras", "image/x-portable-bitmap", "image/x-portable-graymap", "image/x-portable-pixmap", |
"image/psd", "application/x-shockwave-flash"}; |
private int width; |
private int height; |
private int bitsPerPixel; |
private int format; |
private InputStream in; |
private DataInput din; |
private boolean collectComments = true; |
private Vector comments; |
private boolean determineNumberOfImages; |
private int numberOfImages; |
private int physicalHeightDpi; |
private int physicalWidthDpi; |
private int bitBuf; |
private int bitPos; |
private void addComment(String s) { |
if (comments == null) { |
comments = new Vector(); |
} |
comments.addElement(s); |
} |
/** |
* Call this method after you have provided an input stream or file |
* using {@link #setInput(InputStream)} or {@link #setInput(DataInput)}. |
* If true is returned, the file format was known and you information |
* about its content can be retrieved using the various getXyz methods. |
* @return if information could be retrieved from input |
*/ |
public boolean check() { |
format = -1; |
width = -1; |
height = -1; |
bitsPerPixel = -1; |
numberOfImages = 1; |
physicalHeightDpi = -1; |
physicalWidthDpi = -1; |
comments = null; |
try { |
int b1 = read() & 0xff; |
int b2 = read() & 0xff; |
if (b1 == 0x47 && b2 == 0x49) { |
return checkGif(); |
} |
else |
if (b1 == 0x89 && b2 == 0x50) { |
return checkPng(); |
} |
else |
if (b1 == 0xff && b2 == 0xd8) { |
return checkJpeg(); |
} |
else |
if (b1 == 0x42 && b2 == 0x4d) { |
return checkBmp(); |
} |
else |
if (b1 == 0x0a && b2 < 0x06) { |
return checkPcx(); |
} |
else |
if (b1 == 0x46 && b2 == 0x4f) { |
return checkIff(); |
} |
else |
if (b1 == 0x59 && b2 == 0xa6) { |
return checkRas(); |
} |
else |
if (b1 == 0x50 && b2 >= 0x31 && b2 <= 0x36) { |
return checkPnm(b2 - '0'); |
} |
else |
if (b1 == 0x38 && b2 == 0x42) { |
return checkPsd(); |
} |
else |
if (b1 == 0x46 && b2 == 0x57) { |
return checkSwf(); |
} |
else { |
return false; |
} |
} catch (IOException ioe) { |
return false; |
} |
} |
private boolean checkBmp() throws IOException { |
byte[] a = new byte[44]; |
if (read(a) != a.length) { |
return false; |
} |
width = getIntLittleEndian(a, 16); |
height = getIntLittleEndian(a, 20); |
if (width < 1 || height < 1) { |
return false; |
} |
bitsPerPixel = getShortLittleEndian(a, 26); |
if (bitsPerPixel != 1 && bitsPerPixel != 4 && |
bitsPerPixel != 8 && bitsPerPixel != 16 && |
bitsPerPixel != 24 && bitsPerPixel != 32) { |
return false; |
} |
int x = getIntLittleEndian(a, 36); |
if (x > 0) { |
setPhysicalWidthDpi(x); |
} |
int y = getIntLittleEndian(a, 40); |
if (y > 0) { |
setPhysicalHeightDpi(y); |
} |
format = FORMAT_BMP; |
return true; |
} |
private boolean checkGif() throws IOException { |
final byte[] GIF_MAGIC_87A = {0x46, 0x38, 0x37, 0x61}; |
final byte[] GIF_MAGIC_89A = {0x46, 0x38, 0x39, 0x61}; |
byte[] a = new byte[11]; // 4 from the GIF signature + 7 from the global header |
if (read(a) != 11) { |
return false; |
} |
if ((!equals(a, 0, GIF_MAGIC_89A, 0, 4)) && |
(!equals(a, 0, GIF_MAGIC_87A, 0, 4))) { |
return false; |
} |
format = FORMAT_GIF; |
width = getShortLittleEndian(a, 4); |
height = getShortLittleEndian(a, 6); |
int flags = a[8] & 0xff; |
bitsPerPixel = ((flags >> 4) & 0x07) + 1; |
if (!determineNumberOfImages) { |
return true; |
} |
// skip global color palette |
if ((flags & 0x80) != 0) { |
int tableSize = (1 << ((flags & 7) + 1)) * 3; |
skip(tableSize); |
} |
numberOfImages = 0; |
int blockType; |
do |
{ |
blockType = read(); |
switch(blockType) |
{ |
case(0x2c): // image separator |
{ |
if (read(a, 0, 9) != 9) { |
return false; |
} |
flags = a[8] & 0xff; |
int localBitsPerPixel = (flags & 0x07) + 1; |
if (localBitsPerPixel > bitsPerPixel) { |
bitsPerPixel = localBitsPerPixel; |
} |
if ((flags & 0x80) != 0) { |
skip((1 << localBitsPerPixel) * 3); |
} |
skip(1); // initial code length |
int n; |
do |
{ |
n = read(); |
if (n > 0) { |
skip(n); |
} |
else |
if (n == -1) { |
return false; |
} |
} |
while (n > 0); |
numberOfImages++; |
break; |
} |
case(0x21): // extension |
{ |
int extensionType = read(); |
if (collectComments && extensionType == 0xfe) { |
StringBuffer sb = new StringBuffer(); |
int n; |
do |
{ |
n = read(); |
if (n == -1) { |
return false; |
} |
if (n > 0) { |
for (int i = 0; i < n; i++) { |
int ch = read(); |
if (ch == -1) { |
return false; |
} |
sb.append((char)ch); |
} |
} |
} |
while (n > 0); |
} else { |
int n; |
do |
{ |
n = read(); |
if (n > 0) { |
skip(n); |
} |
else |
if (n == -1) { |
return false; |
} |
} |
while (n > 0); |
} |
break; |
} |
case(0x3b): // end of file |
{ |
break; |
} |
default: |
{ |
return false; |
} |
} |
} |
while (blockType != 0x3b); |
return true; |
} |
private boolean checkIff() throws IOException { |
byte[] a = new byte[10]; |
// read remaining 2 bytes of file id, 4 bytes file size |
// and 4 bytes IFF subformat |
if (read(a, 0, 10) != 10) { |
return false; |
} |
final byte[] IFF_RM = {0x52, 0x4d}; |
if (!equals(a, 0, IFF_RM, 0, 2)) { |
return false; |
} |
int type = getIntBigEndian(a, 6); |
if (type != 0x494c424d && // type must be ILBM... |
type != 0x50424d20) { // ...or PBM |
return false; |
} |
// loop chunks to find BMHD chunk |
do { |
if (read(a, 0, 8) != 8) { |
return false; |
} |
int chunkId = getIntBigEndian(a, 0); |
int size = getIntBigEndian(a, 4); |
if ((size & 1) == 1) { |
size++; |
} |
if (chunkId == 0x424d4844) { // BMHD chunk |
if (read(a, 0, 9) != 9) { |
return false; |
} |
format = FORMAT_IFF; |
width = getShortBigEndian(a, 0); |
height = getShortBigEndian(a, 2); |
bitsPerPixel = a[8] & 0xff; |
return (width > 0 && height > 0 && bitsPerPixel > 0 && bitsPerPixel < 33); |
} else { |
skip(size); |
} |
} while (true); |
} |
private boolean checkJpeg() throws IOException { |
byte[] data = new byte[12]; |
while (true) { |
if (read(data, 0, 4) != 4) { |
return false; |
} |
int marker = getShortBigEndian(data, 0); |
int size = getShortBigEndian(data, 2); |
if ((marker & 0xff00) != 0xff00) { |
return false; // not a valid marker |
} |
if (marker == 0xffe0) { // APPx |
if (size < 14) { |
return false; // APPx header must be larger than 14 bytes |
} |
if (read(data, 0, 12) != 12) { |
return false; |
} |
final byte[] APP0_ID = {0x4a, 0x46, 0x49, 0x46, 0x00}; |
if (equals(APP0_ID, 0, data, 0, 5)) { |
if (data[7] == 1) { |
setPhysicalWidthDpi(getShortBigEndian(data, 8)); |
setPhysicalHeightDpi(getShortBigEndian(data, 10)); |
} |
else |
if (data[7] == 2) { |
int x = getShortBigEndian(data, 8); |
int y = getShortBigEndian(data, 10); |
setPhysicalWidthDpi((int)(x * 2.54f)); |
setPhysicalHeightDpi((int)(y * 2.54f)); |
} |
} |
skip(size - 14); |
} |
else |
if (collectComments && size > 2 && marker == 0xfffe) { // comment |
size -= 2; |
byte[] chars = new byte[size]; |
if (read(chars, 0, size) != size) { |
return false; |
} |
String comment = new String(chars, "iso-8859-1"); |
comment = comment.trim(); |
System.out.println(comment); |
addComment(comment); |
} |
else |
if (marker >= 0xffc0 && marker <= 0xffcf && marker != 0xffc4 && marker != 0xffc8) { |
if (read(data, 0, 6) != 6) { |
return false; |
} |
format = FORMAT_JPEG; |
bitsPerPixel = (data[0] & 0xff) * (data[5] & 0xff); |
width = getShortBigEndian(data, 3); |
height = getShortBigEndian(data, 1); |
return true; |
} else { |
skip(size - 2); |
} |
} |
} |
private boolean checkPcx() throws IOException { |
byte[] a = new byte[64]; |
if (read(a) != a.length) { |
return false; |
} |
if (a[0] != 1) { // encoding, 1=RLE is only valid value |
return false; |
} |
// width / height |
int x1 = getShortLittleEndian(a, 2); |
int y1 = getShortLittleEndian(a, 4); |
int x2 = getShortLittleEndian(a, 6); |
int y2 = getShortLittleEndian(a, 8); |
if (x1 < 0 || x2 < x1 || y1 < 0 || y2 < y1) { |
return false; |
} |
width = x2 - x1 + 1; |
height = y2 - y1 + 1; |
// color depth |
int bits = a[1]; |
int planes = a[63]; |
if (planes == 1 && |
(bits == 1 || bits == 2 || bits == 4 || bits == 8)) { |
// paletted |
bitsPerPixel = bits; |
} else |
if (planes == 3 && bits == 8) { |
// RGB truecolor |
bitsPerPixel = 24; |
} else { |
return false; |
} |
setPhysicalWidthDpi(getShortLittleEndian(a, 10)); |
setPhysicalHeightDpi(getShortLittleEndian(a, 10)); |
format = FORMAT_PCX; |
return true; |
} |
private boolean checkPng() throws IOException { |
final byte[] PNG_MAGIC = {0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a}; |
byte[] a = new byte[24]; |
if (read(a) != 24) { |
return false; |
} |
if (!equals(a, 0, PNG_MAGIC, 0, 6)) { |
return false; |
} |
format = FORMAT_PNG; |
width = getIntBigEndian(a, 14); |
height = getIntBigEndian(a, 18); |
bitsPerPixel = a[22] & 0xff; |
int colorType = a[23] & 0xff; |
if (colorType == 2 || colorType == 6) { |
bitsPerPixel *= 3; |
} |
return true; |
} |
private boolean checkPnm(int id) throws IOException { |
if (id < 1 || id > 6) { |
return false; |
} |
final int[] PNM_FORMATS = {FORMAT_PBM, FORMAT_PGM, FORMAT_PPM}; |
format = PNM_FORMATS[(id - 1) % 3]; |
boolean hasPixelResolution = false; |
String s; |
while (true) |
{ |
s = readLine(); |
if (s != null) { |
s = s.trim(); |
} |
if (s == null || s.length() < 1) { |
continue; |
} |
if (s.charAt(0) == '#') { // comment |
if (collectComments && s.length() > 1) { |
addComment(s.substring(1)); |
} |
continue; |
} |
if (!hasPixelResolution) { // split "343 966" into width=343, height=966 |
int spaceIndex = s.indexOf(' '); |
if (spaceIndex == -1) { |
return false; |
} |
String widthString = s.substring(0, spaceIndex); |
spaceIndex = s.lastIndexOf(' '); |
if (spaceIndex == -1) { |
return false; |
} |
String heightString = s.substring(spaceIndex + 1); |
try { |
width = Integer.parseInt(widthString); |
height = Integer.parseInt(heightString); |
} catch (NumberFormatException nfe) { |
return false; |
} |
if (width < 1 || height < 1) { |
return false; |
} |
if (format == FORMAT_PBM) { |
bitsPerPixel = 1; |
return true; |
} |
hasPixelResolution = true; |
} |
else |
{ |
int maxSample; |
try { |
maxSample = Integer.parseInt(s); |
} catch (NumberFormatException nfe) { |
return false; |
} |
if (maxSample < 0) { |
return false; |
} |
for (int i = 0; i < 25; i++) { |
if (maxSample < (1 << (i + 1))) { |
bitsPerPixel = i + 1; |
if (format == FORMAT_PPM) { |
bitsPerPixel *= 3; |
} |
return true; |
} |
} |
return false; |
} |
} |
} |
private boolean checkPsd() throws IOException { |
byte[] a = new byte[24]; |
if (read(a) != a.length) { |
return false; |
} |
final byte[] PSD_MAGIC = {0x50, 0x53}; |
if (!equals(a, 0, PSD_MAGIC, 0, 2)) { |
return false; |
} |
format = FORMAT_PSD; |
width = getIntBigEndian(a, 16); |
height = getIntBigEndian(a, 12); |
int channels = getShortBigEndian(a, 10); |
int depth = getShortBigEndian(a, 20); |
bitsPerPixel = channels * depth; |
return (width > 0 && height > 0 && bitsPerPixel > 0 && bitsPerPixel <= 64); |
} |
private boolean checkRas() throws IOException { |
byte[] a = new byte[14]; |
if (read(a) != a.length) { |
return false; |
} |
final byte[] RAS_MAGIC = {0x6a, (byte)0x95}; |
if (!equals(a, 0, RAS_MAGIC, 0, 2)) { |
return false; |
} |
format = FORMAT_RAS; |
width = getIntBigEndian(a, 2); |
height = getIntBigEndian(a, 6); |
bitsPerPixel = getIntBigEndian(a, 10); |
return (width > 0 && height > 0 && bitsPerPixel > 0 && bitsPerPixel <= 24); |
} |
// Written by Michael Aird. |
private boolean checkSwf() throws IOException { |
//get rid of the last byte of the signature, the byte of the version and 4 bytes of the size |
byte[] a = new byte[6]; |
if (read(a) != a.length) { |
return false; |
} |
format = FORMAT_SWF; |
int bitSize = (int)readUBits( 5 ); |
int minX = (int)readSBits( bitSize ); |
int maxX = (int)readSBits( bitSize ); |
int minY = (int)readSBits( bitSize ); |
int maxY = (int)readSBits( bitSize ); |
width = maxX/20; //cause we're in twips |
height = maxY/20; //cause we're in twips |
setPhysicalWidthDpi(72); |
setPhysicalHeightDpi(72); |
return (width > 0 && height > 0); |
} |
/** |
* Run over String list, return false iff at least one of the arguments |
* equals <code>-c</code>. |
*/ |
private static boolean determineVerbosity(String[] args) { |
if (args != null && args.length > 0) { |
for (int i = 0; i < args.length; i++) { |
if ("-c".equals(args[i])) { |
return false; |
} |
} |
} |
return true; |
} |
private boolean equals(byte[] a1, int offs1, byte[] a2, int offs2, int num) { |
while (num-- > 0) { |
if (a1[offs1++] != a2[offs2++]) { |
return false; |
} |
} |
return true; |
} |
/** |
* If {@link #check()} was successful, returns the image's number of bits per pixel. |
* Does not include transparency information like the alpha channel. |
* @return number of bits per image pixel |
*/ |
public int getBitsPerPixel() { |
return bitsPerPixel; |
} |
/** |
* Returns the index'th comment retrieved from the image. |
* @throws IllegalArgumentException if index is smaller than 0 or larger than or equal |
* to the number of comments retrieved |
* @see #getNumberOfComments |
*/ |
public String getComment(int index) { |
if (comments == null || index < 0 || index >= comments.size()) { |
throw new IllegalArgumentException("Not a valid comment index: " + index); |
} |
return (String)comments.elementAt(index); |
} |
/** |
* If {@link #check()} was successful, returns the image format as one |
* of the FORMAT_xyz constants from this class. |
* Use {@link #getFormatName()} to get a textual description of the file format. |
* @return file format as a FORMAT_xyz constant |
*/ |
public int getFormat() { |
return format; |
} |
/** |
* If {@link #check()} was successful, returns the image format's name. |
* Use {@link #getFormat()} to get a unique number. |
* @return file format name |
*/ |
public String getFormatName() { |
if (format >= 0 && format < FORMAT_NAMES.length) { |
return FORMAT_NAMES[format]; |
} else { |
return "?"; |
} |
} |
/** |
* If {@link #check()} was successful, returns one the image's vertical |
* resolution in pixels. |
* @return image height in pixels |
*/ |
public int getHeight() { |
return height; |
} |
private int getIntBigEndian(byte[] a, int offs) { |
return |
(a[offs] & 0xff) << 24 | |
(a[offs + 1] & 0xff) << 16 | |
(a[offs + 2] & 0xff) << 8 | |
a[offs + 3] & 0xff; |
} |
private int getIntLittleEndian(byte[] a, int offs) { |
return |
(a[offs + 3] & 0xff) << 24 | |
(a[offs + 2] & 0xff) << 16 | |
(a[offs + 1] & 0xff) << 8 | |
a[offs] & 0xff; |
} |
/** |
* If {@link #check()} was successful, returns a String with the |
* MIME type of the format. |
* @return MIME type, e.g. <code>image/jpeg</code> |
*/ |
public String getMimeType() { |
if (format >= 0 && format < MIME_TYPE_STRINGS.length) { |
return MIME_TYPE_STRINGS[format]; |
} else { |
return null; |
} |
} |
/** |
* If {@link #check()} was successful and {@link #setCollectComments(boolean)} was called with |
* <code>true</code> as argument, returns the number of comments retrieved |
* from the input image stream / file. |
* Any number >= 0 and smaller than this number of comments is then a |
* valid argument for the {@link #getComment(int)} method. |
* @return number of comments retrieved from input image |
*/ |
public int getNumberOfComments() |
{ |
if (comments == null) { |
return 0; |
} else { |
return comments.size(); |
} |
} |
/** |
* Returns the number of images in the examined file. |
* Assumes that <code>setDetermineImageNumber(true);</code> was called before |
* a successful call to {@link #check()}. |
* This value can currently be only different from <code>1</code> for GIF images. |
* @return number of images in file |
*/ |
public int getNumberOfImages() |
{ |
return numberOfImages; |
} |
/** |
* Returns the physical height of this image in dots per inch (dpi). |
* Assumes that {@link #check()} was successful. |
* Returns <code>-1</code> on failure. |
* @return physical height (in dpi) |
* @see #getPhysicalWidthDpi() |
* @see #getPhysicalHeightInch() |
*/ |
public int getPhysicalHeightDpi() { |
return physicalHeightDpi; |
} |
/** |
* If {@link #check()} was successful, returns the physical width of this image in dpi (dots per inch) |
* or -1 if no value could be found. |
* @return physical height (in dpi) |
* @see #getPhysicalHeightDpi() |
* @see #getPhysicalWidthDpi() |
* @see #getPhysicalWidthInch() |
*/ |
public float getPhysicalHeightInch() { |
int h = getHeight(); |
int ph = getPhysicalHeightDpi(); |
if (h > 0 && ph > 0) { |
return ((float)h) / ((float)ph); |
} else { |
return -1.0f; |
} |
} |
/** |
* If {@link #check()} was successful, returns the physical width of this image in dpi (dots per inch) |
* or -1 if no value could be found. |
* @return physical width (in dpi) |
* @see #getPhysicalHeightDpi() |
* @see #getPhysicalWidthInch() |
* @see #getPhysicalHeightInch() |
*/ |
public int getPhysicalWidthDpi() { |
return physicalWidthDpi; |
} |
/** |
* Returns the physical width of an image in inches, or |
* <code>-1.0f</code> if width information is not available. |
* Assumes that {@link #check} has been called successfully. |
* @return physical width in inches or <code>-1.0f</code> on failure |
* @see #getPhysicalWidthDpi |
* @see #getPhysicalHeightInch |
*/ |
public float getPhysicalWidthInch() { |
int w = getWidth(); |
int pw = getPhysicalWidthDpi(); |
if (w > 0 && pw > 0) { |
return ((float)w) / ((float)pw); |
} else { |
return -1.0f; |
} |
} |
private int getShortBigEndian(byte[] a, int offs) { |
return |
(a[offs] & 0xff) << 8 | |
(a[offs + 1] & 0xff); |
} |
private int getShortLittleEndian(byte[] a, int offs) { |
return (a[offs] & 0xff) | (a[offs + 1] & 0xff) << 8; |
} |
/** |
* If {@link #check()} was successful, returns one the image's horizontal |
* resolution in pixels. |
* @return image width in pixels |
*/ |
public int getWidth() { |
return width; |
} |
/** |
* To use this class as a command line application, give it either |
* some file names as parameters (information on them will be |
* printed to standard output, one line per file) or call |
* it with no parameters. It will then check data given to it |
* via standard input. |
* @param args the program arguments which must be file names |
*/ |
public static void main(String[] args) { |
ImageInfo imageInfo = new ImageInfo(); |
boolean verbose = determineVerbosity(args); |
if (args.length == 0) { |
run(null, System.in, imageInfo, verbose); |
} else { |
int index = 0; |
while (index < args.length) { |
FileInputStream instream = null; |
try { |
String filename = args[index++]; |
System.out.print(filename + ";"); |
instream = new FileInputStream(filename); |
run(filename, instream, imageInfo, verbose); |
instream.close(); |
} catch (Exception e) { |
System.out.println(e); |
try { |
instream.close(); |
} catch (Exception ee) { |
} |
} |
} |
} |
} |
private static void print(String sourceName, ImageInfo ii, boolean verbose) { |
if (verbose) { |
printVerbose(sourceName, ii); |
} else { |
printCompact(sourceName, ii); |
} |
} |
private static void printCompact(String sourceName, ImageInfo imageInfo) { |
System.out.println( |
imageInfo.getFormatName() + ";" + |
imageInfo.getMimeType() + ";" + |
imageInfo.getWidth() + ";" + |
imageInfo.getHeight() + ";" + |
imageInfo.getBitsPerPixel() + ";" + |
imageInfo.getNumberOfImages() + ";" + |
imageInfo.getPhysicalWidthDpi() + ";" + |
imageInfo.getPhysicalHeightDpi() + ";" + |
imageInfo.getPhysicalWidthInch() + ";" + |
imageInfo.getPhysicalHeightInch() |
); |
} |
private static void printLine(int indentLevels, String text, float value, float minValidValue) { |
if (value < minValidValue) { |
return; |
} |
printLine(indentLevels, text, Float.toString(value)); |
} |
private static void printLine(int indentLevels, String text, int value, int minValidValue) { |
if (value >= minValidValue) { |
printLine(indentLevels, text, Integer.toString(value)); |
} |
} |
private static void printLine(int indentLevels, String text, String value) { |
if (value == null || value.length() == 0) { |
return; |
} |
while (indentLevels-- > 0) { |
System.out.print("\t"); |
} |
if (text != null && text.length() > 0) { |
System.out.print(text); |
System.out.print(" "); |
} |
System.out.println(value); |
} |
private static void printVerbose(String sourceName, ImageInfo ii) { |
printLine(0, null, sourceName); |
printLine(1, "File format: ", ii.getFormatName()); |
printLine(1, "MIME type: ", ii.getMimeType()); |
printLine(1, "Width (pixels): ", ii.getWidth(), 1); |
printLine(1, "Height (pixels): ", ii.getHeight(), 1); |
printLine(1, "Bits per pixel: ", ii.getBitsPerPixel(), 1); |
printLine(1, "Number of images: ", ii.getNumberOfImages(), 1); |
printLine(1, "Physical width (dpi): ", ii.getPhysicalWidthDpi(), 1); |
printLine(1, "Physical height (dpi): ", ii.getPhysicalHeightDpi(), 1); |
printLine(1, "Physical width (inches): ", ii.getPhysicalWidthInch(), 1.0f); |
printLine(1, "Physical height (inches): ", ii.getPhysicalHeightInch(), 1.0f); |
int numComments = ii.getNumberOfComments(); |
printLine(1, "Number of textual comments: ", numComments, 1); |
if (numComments > 0) { |
for (int i = 0; i < numComments; i++) { |
printLine(2, null, ii.getComment(i)); |
} |
} |
} |
private int read() throws IOException { |
if (in != null) { |
return in.read(); |
} else { |
return din.readByte(); |
} |
} |
private int read(byte[] a) throws IOException { |
if (in != null) { |
return in.read(a); |
} else { |
din.readFully(a); |
return a.length; |
} |
} |
private int read(byte[] a, int offset, int num) throws IOException { |
if (in != null) { |
return in.read(a, offset, num); |
} else { |
din.readFully(a, offset, num); |
return num; |
} |
} |
private String readLine() throws IOException { |
return readLine(new StringBuffer()); |
} |
private String readLine(StringBuffer sb) throws IOException { |
boolean finished; |
do { |
int value = read(); |
finished = (value == -1 || value == 10); |
if (!finished) { |
sb.append((char)value); |
} |
} while (!finished); |
return sb.toString(); |
} |
/** |
* Read an unsigned value from the given number of bits |
*/ |
public long readUBits( int numBits ) throws IOException |
{ |
if (numBits == 0) { |
return 0; |
} |
int bitsLeft = numBits; |
long result = 0; |
if (bitPos == 0) { //no value in the buffer - read a byte |
if (in != null) { |
bitBuf = in.read(); |
} else { |
bitBuf = din.readByte(); |
} |
bitPos = 8; |
} |
while( true ) |
{ |
int shift = bitsLeft - bitPos; |
if( shift > 0 ) |
{ |
// Consume the entire buffer |
result |= bitBuf << shift; |
bitsLeft -= bitPos; |
// Get the next byte from the input stream |
if (in != null) { |
bitBuf = in.read(); |
} else { |
bitBuf = din.readByte(); |
} |
bitPos = 8; |
} |
else |
{ |
// Consume a portion of the buffer |
result |= bitBuf >> -shift; |
bitPos -= bitsLeft; |
bitBuf &= 0xff >> (8 - bitPos); // mask off the consumed bits |
return result; |
} |
} |
} |
/** |
* Read a signed value from the given number of bits |
*/ |
private int readSBits( int numBits ) throws IOException |
{ |
// Get the number as an unsigned value. |
long uBits = readUBits( numBits ); |
// Is the number negative? |
if( ( uBits & (1L << (numBits - 1))) != 0 ) |
{ |
// Yes. Extend the sign. |
uBits |= -1L << numBits; |
} |
return (int)uBits; |
} |
/** |
* Reset the bit buffer |
*/ |
public void synchBits() |
{ |
bitBuf = 0; |
bitPos = 0; |
} |
private String readLine(int firstChar) throws IOException { |
StringBuffer result = new StringBuffer(); |
result.append((char)firstChar); |
return readLine(result); |
} |
private static void run(String sourceName, InputStream in, ImageInfo imageInfo, boolean verbose) { |
imageInfo.setInput(in); |
imageInfo.setDetermineImageNumber(true); |
imageInfo.setCollectComments(verbose); |
if (imageInfo.check()) { |
print(sourceName, imageInfo, verbose); |
} |
} |
/** |
* Specify whether textual comments are supposed to be extracted from input. |
* Default is <code>false</code>. |
* If enabled, comments will be added to an internal list. |
* @param newValue if <code>true</code>, this class will read comments |
* @see #getNumberOfComments |
* @see #getComment |
*/ |
public void setCollectComments(boolean newValue) |
{ |
collectComments = newValue; |
} |
/** |
* Specify whether the number of images in a file is to be |
* determined - default is <code>false</code>. |
* This is a special option because some file formats require running over |
* the entire file to find out the number of images, a rather time-consuming |
* task. |
* Not all file formats support more than one image. |
* If this method is called with <code>true</code> as argument, |
* the actual number of images can be queried via |
* {@link #getNumberOfImages()} after a successful call to |
* {@link #check()}. |
* @param newValue will the number of images be determined? |
* @see #getNumberOfImages |
*/ |
public void setDetermineImageNumber(boolean newValue) |
{ |
determineNumberOfImages = newValue; |
} |
/** |
* Set the input stream to the argument stream (or file). |
* Note that {@link java.io.RandomAccessFile} implements |
* {@link java.io.DataInput}. |
* @param dataInput the input stream to read from |
*/ |
public void setInput(DataInput dataInput) { |
din = dataInput; |
in = null; |
} |
/** |
* Set the input stream to the argument stream (or file). |
* @param inputStream the input stream to read from |
*/ |
public void setInput(InputStream inputStream) { |
in = inputStream; |
din = null; |
} |
private void setPhysicalHeightDpi(int newValue) { |
physicalWidthDpi = newValue; |
} |
private void setPhysicalWidthDpi(int newValue) { |
physicalHeightDpi = newValue; |
} |
private void skip(int num) throws IOException { |
if (in != null) { |
in.skip(num); |
} else { |
din.skipBytes(num); |
} |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/util/FileUtils.java |
---|
0,0 → 1,79 |
package ak.photoalbum.util; |
import java.util.Map; |
import java.util.HashMap; |
import java.io.File; |
import java.io.InputStream; |
import java.io.OutputStream; |
import java.io.IOException; |
public class FileUtils |
{ |
protected static final int COPY_BUFFER_SIZE = 4096; |
protected static final Map MIME_MAP = new HashMap(); |
static { |
MIME_MAP.put("jpg", "image/jpeg"); |
MIME_MAP.put("jpeg", "image/jpeg"); |
MIME_MAP.put("png", "image/png"); |
} |
public static String getMime(String ext) |
{ |
if(ext == null) |
return null; |
else |
return (String)MIME_MAP.get(ext.toLowerCase()); |
} |
public static void copyStreams(InputStream in, OutputStream out) |
throws IOException |
{ |
byte[] buf = new byte[COPY_BUFFER_SIZE]; |
int len; |
while((len = in.read(buf)) > 0) { |
out.write(buf, 0, len); |
} |
} |
public static String extractFileName(String fullName) |
{ |
if(fullName == null) return null; |
int pointPos = fullName.lastIndexOf('.'); |
if(pointPos <= 0) |
return fullName; |
else |
return fullName.substring(0, pointPos); |
} |
public static String extractFileExt(String fullName) |
{ |
if(fullName == null) return null; |
int pointPos = fullName.lastIndexOf('.'); |
if(pointPos <= 0) |
return ""; |
else |
return fullName.substring(pointPos + 1); |
} |
public static String replaceFileSeparator(String path, String replaceWith) |
{ |
String sep = File.separator; |
StringBuffer buf = new StringBuffer(); |
int pos = -1; |
int oldPos = -1; |
while((pos = path.indexOf(sep, pos + 1)) >= 0) { |
buf.append(path.substring(oldPos + 1, pos)).append(replaceWith); |
oldPos = pos; |
} |
buf.append(path.substring(oldPos + 1)); |
return buf.toString(); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/util/FileNameComparator.java |
---|
0,0 → 1,31 |
package ak.photoalbum.util; |
import java.util.Comparator; |
import java.io.File; |
public class FileNameComparator |
implements Comparator |
{ |
private boolean dirFirst; |
public FileNameComparator(boolean dirFirst) |
{ |
this.dirFirst = dirFirst; |
} |
public int compare(Object o1, Object o2) |
throws ClassCastException |
{ |
return compare((File)o1, (File)o2); |
} |
public int compare(File f1, File f2) |
{ |
boolean d1 = f1.isDirectory(); |
boolean d2 = f2.isDirectory(); |
if(d1 && !d2) return (dirFirst ? -1 : 1); |
else if(!d1 && d2) return (dirFirst ? 1 : -1); |
else return f1.getName().compareToIgnoreCase(f2.getName()); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/util/ImagesFilter.java |
---|
0,0 → 1,37 |
package ak.photoalbum.util; |
import java.io.File; |
import java.io.FileFilter; |
import java.util.Set; |
import java.util.HashSet; |
import java.util.StringTokenizer; |
public class ImagesFilter |
implements FileFilter |
{ |
Set extentions = new HashSet(); |
public ImagesFilter(String imagesMask) |
{ |
StringTokenizer tokenizer = new StringTokenizer(imagesMask, ";"); |
while(tokenizer.hasMoreTokens()) { |
String token = tokenizer.nextToken(); |
if(token.startsWith("*.")) token = token.substring(2); |
extentions.add(token.toLowerCase()); |
} |
} |
public boolean accept(File pathname) |
{ |
if(pathname.isDirectory()) { |
return !pathname.getName().startsWith("."); // skip hidden dirs |
} |
else{ |
return extentions.contains(FileUtils.extractFileExt( |
pathname.getName().toLowerCase())); |
} |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/IndexAction.java |
---|
0,0 → 1,45 |
package ak.photoalbum.webapp; |
import java.util.List; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.log4j.Logger; |
import ak.photoalbum.util.FileUtils; |
public final class IndexAction |
extends BaseAction |
{ |
private static final Logger logger = Logger.getLogger(IndexAction.class); |
public ActionForward executeAction(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
PathForm theForm = (PathForm)form; |
String dir = theForm.getPath(); |
IndexEntry entry = new IndexEntry(); |
IndexEntry top = new IndexEntry(); |
IndexEntry prev = new IndexEntry(); |
IndexEntry current = new IndexEntry(); |
IndexEntry next = new IndexEntry(); |
List index; |
if(dir == null) dir = ""; // the images root |
logger.info("get index for " + dir); |
Logic.getLogic().getEntry(dir, entry, top, prev, current, next); |
index = Logic.getLogic().listDirectory(dir); |
request.setAttribute("dir", FileUtils.replaceFileSeparator(dir, " - ")); |
request.setAttribute("index", index); |
request.setAttribute("top", top); |
request.setAttribute("prevEntry", prev); |
request.setAttribute("current", current); |
request.setAttribute("nextEntry", next); |
return mapping.findForward("success"); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/BaseAction.java |
---|
0,0 → 1,51 |
package ak.photoalbum.webapp; |
import java.util.List; |
import java.io.FileNotFoundException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.log4j.Logger; |
import ak.photoalbum.util.FileUtils; |
public abstract class BaseAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
Logger logger = Logger.getLogger(getClass()); |
try { |
return executeAction(mapping, form, request, response); |
} |
catch(LogicSecurityException ex) { |
logger.warn("forbidden: " + ex.getMessage()); |
logger.debug("forbidden", ex); |
response.sendError(HttpServletResponse.SC_FORBIDDEN); |
return null; |
} |
catch(FileNotFoundException ex) { |
logger.warn("not found: " + ex.getMessage()); |
logger.debug("not found", ex); |
response.sendError(HttpServletResponse.SC_NOT_FOUND); |
return null; |
} |
catch(Exception ex) { |
logger.error("exception", ex); |
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); |
return null; |
} |
} |
public abstract ActionForward executeAction(ActionMapping mapping, |
ActionForm form, HttpServletRequest request, HttpServletResponse response) |
throws Exception; |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/InitServlet.java |
---|
0,0 → 1,50 |
package ak.photoalbum.webapp; |
import javax.servlet.ServletException; |
import javax.servlet.ServletConfig; |
import javax.servlet.http.HttpServlet; |
public class InitServlet |
extends HttpServlet |
{ |
public void init() |
throws ServletException |
{ |
ServletConfig config = getServletConfig(); |
String imagesRoot; |
String imagesMask; |
String cacheDir; |
String thumbnailFormat; |
Integer smallWidth = null; |
Integer smallHeight = null; |
Integer mediumWidth = null; |
Integer mediumHeight = null; |
Integer columns = null; |
String dirTemplate; |
String dirThumbnailPositions; |
imagesRoot = config.getInitParameter("images root"); |
imagesMask = config.getInitParameter("images mask"); |
cacheDir = config.getInitParameter("cache dir"); |
thumbnailFormat = config.getInitParameter("thumbnail format"); |
if(config.getInitParameter("small width") != null) |
smallWidth = new Integer(config.getInitParameter("small width")); |
if(config.getInitParameter("small height") != null) |
smallHeight = new Integer(config.getInitParameter("small height")); |
if(config.getInitParameter("medium width") != null) |
mediumWidth = new Integer(config.getInitParameter("medium width")); |
if(config.getInitParameter("medium heught") != null) |
mediumHeight = new Integer(config.getInitParameter("medium heught")); |
if(config.getInitParameter("columns") != null) |
columns = new Integer(config.getInitParameter("columns")); |
dirTemplate = config.getInitParameter("dir template"); |
dirThumbnailPositions = config.getInitParameter("dir thumbnails positions"); |
Logic.getLogic().init(imagesRoot, imagesMask, cacheDir, thumbnailFormat, |
smallWidth, smallHeight, mediumWidth, mediumHeight, columns, |
dirTemplate, dirThumbnailPositions); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/IndexEntry.java |
---|
0,0 → 1,94 |
package ak.photoalbum.webapp; |
import java.io.File; |
public class IndexEntry |
{ |
private File file; |
private String path; |
private String title; |
private boolean isDir; |
private int width; |
private int height; |
public IndexEntry() |
{ |
} |
public IndexEntry(File file, String path, String title, boolean isDir, |
int width, int height) |
{ |
this.file = file; |
this.path = path; |
this.title = title; |
this.isDir = isDir; |
this.width = width; |
this.height = height; |
} |
public File getFile() |
{ |
return file; |
} |
public void setFile(File file) |
{ |
this.file = file; |
} |
public String getPath() |
{ |
return path; |
} |
public void setPath(String path) |
{ |
this.path = path; |
} |
public String getTitle() |
{ |
return title; |
} |
public void setTitle(String title) |
{ |
this.title = title; |
} |
public boolean getIsDir() |
{ |
return isDir; |
} |
public void setIsDir(boolean isDir) |
{ |
this.isDir = isDir; |
} |
public int getWidth() |
{ |
return width; |
} |
public void setWidth(int width) |
{ |
this.width = width; |
} |
public int getHeight() |
{ |
return height; |
} |
public void setHeight(int height) |
{ |
this.height = height; |
} |
public String toString() |
{ |
return super.toString() + ": " + file + " - " + path + " - " + title |
+ " " + width + "x" + height; |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/PageAction.java |
---|
0,0 → 1,41 |
package ak.photoalbum.webapp; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.log4j.Logger; |
public final class PageAction |
extends BaseAction |
{ |
private static final Logger logger = Logger.getLogger(IndexAction.class); |
public ActionForward executeAction(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
PathForm theForm = (PathForm)form; |
String page = theForm.getPath(); |
IndexEntry entry = new IndexEntry(); |
IndexEntry index = new IndexEntry(); |
IndexEntry prev = new IndexEntry(); |
IndexEntry current = new IndexEntry(); |
IndexEntry next = new IndexEntry(); |
if(page == null) page = ""; // the images root |
logger.info("get page " + page); |
Logic.getLogic().getEntry(page, entry, index, prev, current, next); |
request.setAttribute("page", page); |
request.setAttribute("entry", entry); |
request.setAttribute("index", index); |
request.setAttribute("prevEntry", prev); |
request.setAttribute("current", current); |
request.setAttribute("nextEntry", next); |
return mapping.findForward("success"); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/LogicException.java |
---|
0,0 → 1,10 |
package ak.photoalbum.webapp; |
public class LogicException |
extends Exception |
{ |
public LogicException(String message) |
{ |
super(message); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/Logic.java |
---|
0,0 → 1,342 |
package ak.photoalbum.webapp; |
import java.util.List; |
import java.util.ArrayList; |
import java.util.Arrays; |
import java.util.Comparator; |
import java.util.StringTokenizer; |
import java.io.File; |
import java.io.IOException; |
import java.io.FileInputStream; |
import java.io.OutputStream; |
import java.io.UnsupportedEncodingException; |
import java.io.FileNotFoundException; |
import java.net.URLEncoder; |
import org.apache.log4j.Logger; |
import ak.photoalbum.images.Thumbnailer; |
import ak.photoalbum.images.ThumbnailPosition; |
import ak.photoalbum.util.FileUtils; |
import ak.photoalbum.util.FileNameComparator; |
import ak.photoalbum.util.ImagesFilter; |
public class Logic |
{ |
protected static final int DEFAULT_COLUMNS = 4; |
protected static final String URL_ENCODING = "UTF-8"; |
protected Logger logger; |
protected Thumbnailer thumbnailer; |
protected File imagesRoot; |
protected int columns = DEFAULT_COLUMNS; |
protected ImagesFilter imagesFilter; |
protected Comparator fileNameComparator = new FileNameComparator(true); |
protected Logic() |
{ |
this.logger = Logger.getLogger(this.getClass()); |
} |
public void init(String imagesRoot, String imagesMask, |
String cacheDir, String thumbnailFormat, |
Integer smallWidth, Integer smallHeight, |
Integer mediumWidth, Integer mediumHeight, Integer columns, |
String dirTemplate, String dirThumbnailPositions) |
{ |
this.imagesRoot = new File(imagesRoot); |
this.imagesFilter = new ImagesFilter(imagesMask); |
if(columns != null) this.columns = columns.intValue(); |
this.thumbnailer = new Thumbnailer(); |
this.thumbnailer.setImagesRoot(this.imagesRoot); |
this.thumbnailer.setCacheDir(new File(cacheDir)); |
if(thumbnailFormat != null) |
this.thumbnailer.setFormat(thumbnailFormat); |
if(smallWidth != null) |
this.thumbnailer.setSmallWidth(smallWidth.intValue()); |
if(smallHeight != null) |
this.thumbnailer.setSmallHeight(smallHeight.intValue()); |
if(mediumWidth != null) |
this.thumbnailer.setMediumWidth(mediumWidth.intValue()); |
if(mediumHeight != null) |
this.thumbnailer.setMediumHeight(mediumHeight.intValue()); |
thumbnailer.setResizer(new ak.photoalbum.images.jiu.JiuResizer()); |
thumbnailer.setImagesFilter(this.imagesFilter); |
thumbnailer.setDirTemplate(new File(dirTemplate)); |
thumbnailer.setDirThumbnailPositions( |
parseThumbnailPositions(dirThumbnailPositions)); |
try { |
thumbnailer.startup(); |
} |
catch(Exception ex) { |
logger.error("init thumbnailer", ex); |
} |
logger.info("started"); |
} |
public void buildCache() |
throws IOException |
{ |
thumbnailer.buildCache(); |
} |
public void getEntry(String path, IndexEntry page, |
IndexEntry index, IndexEntry prev, IndexEntry current, IndexEntry next) |
throws IOException, LogicException |
{ |
File file = new File(imagesRoot, path); |
securePath(imagesRoot, file); |
if(!file.exists()) |
throw new FileNotFoundException( |
"[" + file.getCanonicalPath() + "] not found"); |
File dir = file.getParentFile(); |
File[] children = dir.listFiles(imagesFilter); |
int pos; |
Arrays.sort(children, fileNameComparator); |
pos = Arrays.binarySearch(children, file, fileNameComparator); |
if(pos < 0) |
throw new FileNotFoundException("[" + file.getCanonicalPath() |
+ "] not found in [" + dir.getCanonicalPath() + "]"); |
setEntryInfo(page, file, false); |
setEntryInfo(current, file, true); |
setEntryInfo(index, dir, true); |
if(pos > 0) setEntryInfo(prev, children[pos-1], true); |
if(pos < children.length-1) setEntryInfo(next, children[pos+1], true); |
} |
protected void setEntryInfo(IndexEntry entry, File file, boolean small) |
throws IOException |
{ |
String title = file.getName(); |
int[] size; |
String path = getPath(file); |
if(file.isDirectory()) { |
size = thumbnailer.getDirSize(file); |
} |
else { |
title = FileUtils.extractFileName(title); |
if(small) |
size = thumbnailer.getSmallSize(file); |
else |
size = thumbnailer.getMediumSize(file); |
} |
entry.setFile(file); |
entry.setPath(path == null ? null : URLEncoder.encode(path, URL_ENCODING)); |
entry.setTitle(title); |
entry.setIsDir(file.isDirectory()); |
entry.setWidth(size[0]); |
entry.setHeight(size[1]); |
} |
public String getThumbnailMime() |
{ |
return thumbnailer.getMime(); |
} |
public String getOriginMime(String path) |
throws IOException, LogicException |
{ |
File file = new File(imagesRoot, path); |
if(!file.exists()) return null; |
securePath(imagesRoot, file); |
return FileUtils.getMime(FileUtils.extractFileExt(path)); |
} |
public void writeDir(String path, OutputStream out) |
throws IOException, LogicException |
{ |
File file = new File(imagesRoot, path); |
securePath(imagesRoot, file); |
thumbnailer.writeDir(file, out); |
} |
public void writeSmall(String path, OutputStream out) |
throws IOException, LogicException |
{ |
File file = new File(imagesRoot, path); |
securePath(imagesRoot, file); |
thumbnailer.writeSmall(file, out); |
} |
public void writeMedium(String path, OutputStream out) |
throws IOException, LogicException |
{ |
File file = new File(imagesRoot, path); |
securePath(imagesRoot, file); |
thumbnailer.writeMedium(file, out); |
} |
public void writeOrigin(String path, OutputStream out) |
throws IOException, LogicException |
{ |
FileInputStream in = null; |
File file = new File(imagesRoot, path); |
securePath(imagesRoot, file); |
try { |
in = new FileInputStream(file); |
FileUtils.copyStreams(in, out); |
} |
finally { |
if(in != null) in.close(); |
} |
} |
public List listDirectory(String dirName) |
throws UnsupportedEncodingException, IOException, LogicException |
{ |
File dir = new File(imagesRoot, dirName); |
securePath(imagesRoot, dir); |
if(!dir.exists()) return null; |
File[] children = dir.listFiles(imagesFilter); |
List rows = new ArrayList(); |
int pos = 0; |
Arrays.sort(children, fileNameComparator); |
while(pos < children.length) { |
List row = new ArrayList(); |
int rowPos = 0; |
rows.add(row); |
while(rowPos < columns && pos < children.length) { |
String path = getPath(children[pos]); |
String title = children[pos].getName(); |
int[] size; |
if(children[pos].isDirectory()) { |
size = thumbnailer.getDirSize(children[pos]); |
} |
else { |
size = thumbnailer.getSmallSize(children[pos]); |
title = FileUtils.extractFileName(title); |
} |
row.add(new IndexEntry(children[pos], |
URLEncoder.encode(path, URL_ENCODING), |
title, children[pos].isDirectory(), size[0], size[1])); |
rowPos++; |
pos++; |
} |
while(rowPos < columns) { |
row.add(null); |
rowPos++; |
} |
} |
return rows; |
} |
protected String getPath(File file) |
throws IOException |
{ |
String path = file.getCanonicalPath(); |
String rootPath = imagesRoot.getCanonicalPath(); |
if(path.equals(rootPath)) return ""; |
if(!rootPath.endsWith(File.separator)) rootPath += File.separator; |
if(!path.startsWith(rootPath)) |
return null; |
return path.substring(rootPath.length()); |
} |
protected ThumbnailPosition[] parseThumbnailPositions(String str) |
{ |
List list = new ArrayList(); |
StringTokenizer tokenizer = new StringTokenizer(str, ";"); |
while(tokenizer.hasMoreTokens()) { |
StringTokenizer tokenParser |
= new StringTokenizer(tokenizer.nextToken(), ","); |
int x = Integer.parseInt(tokenParser.nextToken().trim()); |
int y = Integer.parseInt(tokenParser.nextToken().trim()); |
int width = Integer.parseInt(tokenParser.nextToken().trim()); |
int height = Integer.parseInt(tokenParser.nextToken().trim()); |
String horAlignStr = tokenParser.nextToken().trim().toLowerCase(); |
String vertAlignStr = tokenParser.nextToken().trim().toLowerCase(); |
int horAlign; |
int vertAlign; |
if("l".equals(horAlignStr)) |
horAlign = ThumbnailPosition.ALIGN_HOR_LEFT; |
else if("r".equals(horAlignStr)) |
horAlign = ThumbnailPosition.ALIGN_HOR_RIGHT; |
else if("c".equals(horAlignStr)) |
horAlign = ThumbnailPosition.ALIGN_HOR_CENTER; |
else |
throw new RuntimeException( |
"Cannot parse " + horAlignStr + " as horizontal alignment"); |
if("t".equals(vertAlignStr)) |
vertAlign = ThumbnailPosition.ALIGN_VERT_TOP; |
else if("b".equals(vertAlignStr)) |
vertAlign = ThumbnailPosition.ALIGN_VERT_BOTTOM; |
else if("c".equals(vertAlignStr)) |
vertAlign = ThumbnailPosition.ALIGN_VERT_CENTER; |
else |
throw new RuntimeException( |
"Cannot parse " + vertAlignStr + " as vertical alignment"); |
list.add(new ThumbnailPosition(x, y, width, height, horAlign, vertAlign)); |
} |
ThumbnailPosition[] res = new ThumbnailPosition[list.size()]; |
for(int i = 0; i < res.length; i++) |
res[i] = (ThumbnailPosition)list.get(i); |
return res; |
} |
protected static final Logic instance = new Logic(); |
public static Logic getLogic() |
{ |
return instance; |
} |
/** |
* checks if given file is really under the parent directory |
*/ |
protected void securePath(File parentDir, File file) |
throws IOException, LogicException |
{ |
if(parentDir == null || file == null) return; |
File partFile = file.getCanonicalFile(); |
parentDir = parentDir.getCanonicalFile(); |
while(partFile != null) { |
if(partFile.equals(parentDir)) return; |
partFile = partFile.getParentFile(); |
} |
throw new LogicSecurityException( |
"[" + file.getCanonicalPath() + "] is outside of directory [" |
+ parentDir.getCanonicalPath() + "]"); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/ImageAction.java |
---|
0,0 → 1,45 |
package ak.photoalbum.webapp; |
import java.io.FileNotFoundException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.log4j.Logger; |
public final class ImageAction |
extends BaseAction |
{ |
private static final Logger logger = Logger.getLogger(ImageAction.class); |
public ActionForward executeAction(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
PathForm theForm = (PathForm)form; |
String path = theForm.getPath(); |
Logic logic = Logic.getLogic(); |
logger.info("get image " + mapping.getParameter() + " for " + path); |
if("dir".equals(mapping.getParameter())) { |
response.setContentType(logic.getThumbnailMime()); |
logic.writeDir(path, response.getOutputStream()); |
} |
else if("small".equals(mapping.getParameter())) { |
response.setContentType(logic.getThumbnailMime()); |
logic.writeSmall(path, response.getOutputStream()); |
} |
else if("medium".equals(mapping.getParameter())) { |
response.setContentType(logic.getThumbnailMime()); |
logic.writeMedium(path, response.getOutputStream()); |
} |
else if("origin".equals(mapping.getParameter())) { |
response.setContentType(logic.getOriginMime(path)); |
logic.writeOrigin(path, response.getOutputStream()); |
} |
return null; |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/PathForm.java |
---|
0,0 → 1,31 |
package ak.photoalbum.webapp; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.struts.action.ActionError; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionMapping; |
public class PathForm |
extends ActionForm |
{ |
protected String path; |
public String getPath() |
{ |
return path; |
} |
public void setPath(String path) |
{ |
this.path = path; |
} |
public ActionErrors validate(ActionMapping mapping, |
HttpServletRequest request) |
{ |
ActionErrors errors = new ActionErrors(); |
return errors; |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/BuildCacheAction.java |
---|
0,0 → 1,25 |
package ak.photoalbum.webapp; |
import java.util.List; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.log4j.Logger; |
public final class BuildCacheAction |
extends Action |
{ |
private static final Logger logger = Logger.getLogger(IndexAction.class); |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
Logic.getLogic().buildCache(); |
return mapping.findForward("success"); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/webapp/LogicSecurityException.java |
---|
0,0 → 1,10 |
package ak.photoalbum.webapp; |
public class LogicSecurityException |
extends LogicException |
{ |
public LogicSecurityException(String message) |
{ |
super(message); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/images/ImageResizer.java |
---|
0,0 → 1,9 |
package ak.photoalbum.images; |
import java.awt.Image; |
import java.awt.image.BufferedImage; |
public interface ImageResizer |
{ |
public BufferedImage resize(Image origin, int newWidth, int newHeight); |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/images/CachedFile.java |
---|
0,0 → 1,99 |
package ak.photoalbum.images; |
import java.io.File; |
class CachedFile |
{ |
private File file; |
private File originFile; |
private long timestamp; |
private long originTimestamp; |
private int width; |
private int height; |
public CachedFile() |
{ |
} |
public CachedFile(File file, File originFile, long timestamp, |
long originTimestamp, int width, int height) |
{ |
this.file = file; |
this.originFile = originFile; |
this.timestamp = timestamp; |
this.originTimestamp = originTimestamp; |
this.width = width; |
this.height = height; |
} |
public File getFile() |
{ |
return file; |
} |
public void setFile(File file) |
{ |
this.file = file; |
} |
public File getOriginFile() |
{ |
return originFile; |
} |
public void setOriginFile(File file) |
{ |
this.originFile = file; |
} |
public long getTimestamp() |
{ |
return timestamp; |
} |
public void setTimestamp(long timestamp) |
{ |
this.timestamp = timestamp; |
} |
public long getOriginTimestamp() |
{ |
return originTimestamp; |
} |
public void setOriginTimestamp(long timestamp) |
{ |
this.originTimestamp = timestamp; |
} |
public int getWidth() |
{ |
return width; |
} |
public void setWidth(int width) |
{ |
this.width = width; |
} |
public int getHeight() |
{ |
return height; |
} |
public void setHeight(int height) |
{ |
this.height = height; |
} |
public String toString() |
{ |
return super.toString() + ":" |
+ " file=" + file |
+ " originFile=" + originFile |
+ " timestamp=" + timestamp |
+ " originTimestamp=" + originTimestamp |
+ " width=" + width |
+ " height=" + height; |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/images/jiu/JiuResizer.java |
---|
0,0 → 1,205 |
package ak.photoalbum.images.jiu; |
import java.awt.Image; |
import java.awt.image.BufferedImage; |
import java.awt.image.PixelGrabber; |
import java.awt.image.ImageObserver; |
import org.apache.log4j.Logger; |
import ak.photoalbum.images.ImageResizer; |
import net.sourceforge.jiu.data.BilevelImage; |
import net.sourceforge.jiu.data.Gray8Image; |
import net.sourceforge.jiu.data.MemoryRGB24Image; |
import net.sourceforge.jiu.data.Palette; |
import net.sourceforge.jiu.data.Paletted8Image; |
import net.sourceforge.jiu.data.PixelImage; |
import net.sourceforge.jiu.data.RGB24Image; |
import net.sourceforge.jiu.data.RGBIndex; |
import net.sourceforge.jiu.geometry.Resample; |
public class JiuResizer |
implements ImageResizer |
{ |
protected static final int DEFAULT_ALPHA = 0xff000000; |
protected static final int FILTER_TYPE = Resample.FILTER_TYPE_LANCZOS3; |
/* |
Possible type small, ms medium, ms quality |
----------------------------------------------------------- |
FILTER_TYPE_BOX 2.4 3.5 very bad |
FILTER_TYPE_TRIANGLE 2.9 5.2 |
FILTER_TYPE_B_SPLINE 3.6 7.2 |
FILTER_TYPE_BELL 3.5 6.1 |
FILTER_TYPE_HERMITE 2.9 5.3 |
FILTER_TYPE_LANCZOS3 4.7 9.7 the best |
FILTER_TYPE_MITCHELL 3.6 7.1 |
*/ |
protected Logger logger; |
public JiuResizer() |
{ |
this.logger = Logger.getLogger(this.getClass()); |
} |
public BufferedImage resize(Image origin, int newWidth, int newHeight) |
{ |
try { |
RGB24Image image = convertImageToRGB24Image(origin); |
Resample resample; |
if(image == null) return null; |
if(image.getWidth() == newWidth && image.getHeight() == newHeight) |
return convertToAwtImage(image, DEFAULT_ALPHA); |
resample = new Resample(); |
resample.setInputImage(image); |
resample.setSize(newWidth, newHeight); |
resample.setFilter(FILTER_TYPE); |
resample.process(); |
return convertToAwtImage(resample.getOutputImage(), DEFAULT_ALPHA); |
} |
catch(Exception ex) { |
ex.printStackTrace(); |
throw new RuntimeException(ex.getMessage()); |
} |
} |
protected static BufferedImage convertToAwtImage(PixelImage image, int alpha) |
{ |
if (image == null) |
{ |
return null; |
} |
if (image instanceof RGB24Image) |
{ |
return convertToAwtImage((RGB24Image)image, alpha); |
} |
else |
if (image instanceof Gray8Image) |
{ |
return null; //convertToAwtImage((Gray8Image)image, alpha); |
} |
else |
if (image instanceof Paletted8Image) |
{ |
return null; //convertToAwtImage((Paletted8Image)image, alpha); |
} |
else |
if (image instanceof BilevelImage) |
{ |
return null; //convertToAwtImage((BilevelImage)image, alpha); |
} |
else |
{ |
return null; |
} |
} |
protected static BufferedImage convertToAwtImage(RGB24Image image, int alpha) |
{ |
if (image == null) |
{ |
return null; |
} |
int width = image.getWidth(); |
int height = image.getHeight(); |
if (width < 1 || height < 1) |
{ |
return null; |
} |
int[] pixels = new int[width]; |
byte[] red = new byte[width]; |
byte[] green = new byte[width]; |
byte[] blue = new byte[width]; |
BufferedImage newImage = new BufferedImage(width, height, |
BufferedImage.TYPE_INT_RGB); |
for (int y = 0; y < height; y++) |
{ |
image.getByteSamples(RGBIndex.INDEX_RED, 0, y, width, 1, red, 0); |
image.getByteSamples(RGBIndex.INDEX_GREEN, 0, y, width, 1, green, 0); |
image.getByteSamples(RGBIndex.INDEX_BLUE, 0, y, width, 1, blue, 0); |
convertFromRGB24(red, 0, green, 0, blue, 0, alpha, pixels, 0, width); |
for(int x = 0; x < width; x++) |
newImage.setRGB(x, y, pixels[x]); |
} |
return newImage; |
} |
protected static void convertFromRGB24( |
byte[] srcRed, int srcRedOffset, |
byte[] srcGreen, int srcGreenOffset, |
byte[] srcBlue, int srcBlueOffset, |
int alpha, |
int[] dest, int destOffset, |
int num) |
{ |
while (num-- > 0) |
{ |
dest[destOffset++] = |
alpha | |
(srcBlue[srcBlueOffset++] & 0xff) | |
((srcGreen[srcGreenOffset++] & 0xff) << 8) | |
((srcRed[srcRedOffset++] & 0xff) << 16); |
} |
} |
/** |
* Creates an {@link RGB24Image} from the argument AWT image instance. |
* @param image AWT image object to be converted to a {@link RGB24Image} |
* @return a {@link RGB24Image} object holding the |
* image data from the argument image |
*/ |
protected static RGB24Image convertImageToRGB24Image(Image image) |
{ |
if (image == null) |
{ |
return null; |
} |
int width = image.getWidth(null); |
int height = image.getHeight(null); |
if (width < 1 || height < 1) |
{ |
return null; |
} |
int[] pixels = new int[width * height]; |
PixelGrabber pg = new PixelGrabber( |
image, 0, 0, width, height, pixels, 0, width); |
try |
{ |
pg.grabPixels(); |
} |
catch (InterruptedException e) |
{ |
return null; |
} |
if ((pg.getStatus() & ImageObserver.ABORT) != 0) |
{ |
//System.err.println("image fetch aborted or errored"); |
return null; |
} |
RGB24Image result = new MemoryRGB24Image(width, height); |
int offset = 0; |
for (int y = 0; y < height; y++) |
{ |
for (int x = 0; x < width; x++) |
{ |
int pixel = pixels[offset++] & 0xffffff; |
result.putSample(RGBIndex.INDEX_RED, x, y, pixel >> 16); |
result.putSample(RGBIndex.INDEX_GREEN, x, y, (pixel >> 8) & 0xff); |
result.putSample(RGBIndex.INDEX_BLUE, x, y, pixel & 0xff); |
} |
} |
return result; |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/images/ThumbnailPosition.java |
---|
0,0 → 1,89 |
package ak.photoalbum.images; |
public class ThumbnailPosition |
{ |
public static final int ALIGN_HOR_LEFT = 1; |
public static final int ALIGN_HOR_RIGHT = 2; |
public static final int ALIGN_HOR_CENTER = 3; |
public static final int ALIGN_VERT_TOP = 1; |
public static final int ALIGN_VERT_BOTTOM = 2; |
public static final int ALIGN_VERT_CENTER = 3; |
private int x; |
private int y; |
private int width; |
private int height; |
private int horAlign; |
private int vertAlign; |
public ThumbnailPosition(int x, int y, int width, int height, |
int horAlign, int vertAlign) |
{ |
this.x = x; |
this.y = y; |
this.width = width; |
this.height = height; |
this.horAlign = horAlign; |
this.vertAlign = vertAlign; |
} |
public int getX() |
{ |
return x; |
} |
public void setX(int x) |
{ |
this.x = x; |
} |
public int getY() |
{ |
return y; |
} |
public void setY(int y) |
{ |
this.y = y; |
} |
public int getWidth() |
{ |
return width; |
} |
public void setWidth(int width) |
{ |
this.width = width; |
} |
public int getHeight() |
{ |
return height; |
} |
public void setHeight(int height) |
{ |
this.height = height; |
} |
public int getHorAlign() |
{ |
return horAlign; |
} |
public void setHorAlign(int horAlign) |
{ |
this.horAlign = horAlign; |
} |
public int getVertAlign() |
{ |
return vertAlign; |
} |
public void setVertAlign(int vertAlign) |
{ |
this.vertAlign = vertAlign; |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/images/Thumbnailer.java |
---|
0,0 → 1,799 |
package ak.photoalbum.images; |
import java.util.Map; |
import java.util.HashMap; |
import java.util.Comparator; |
import java.util.Arrays; |
import java.io.File; |
import java.io.FileFilter; |
import java.io.IOException; |
import java.io.FileInputStream; |
import java.io.FileOutputStream; |
import java.io.OutputStream; |
import java.awt.Image; |
import java.awt.Toolkit; |
import java.awt.Graphics; |
import java.awt.image.BufferedImage; |
import java.awt.image.ImageObserver; |
import java.awt.image.PixelGrabber; |
import javax.imageio.ImageIO; |
import org.apache.log4j.Logger; |
import marcoschmidt.image.ImageInfo; |
import ak.photoalbum.util.FileUtils; |
import ak.photoalbum.util.FileNameComparator; |
public class Thumbnailer |
{ |
protected static final String DEFAULT_FORMAT = "jpg"; |
protected static final String SMALL_SUFFIX = ".small"; |
protected static final String MEDIUM_SUFFIX = ".medium"; |
protected static final String DIR_SUFFIX = ".dir"; |
protected static final int DEFAULT_SMALL_WIDTH = 120; |
protected static final int DEFAULT_SMALL_HEIGHT = 120; |
protected static final int DEFAULT_MEDIUM_WIDTH = 800; |
protected static final int DEFAULT_MEDIUM_HEIGHT = 800; |
protected Logger logger; |
protected ImageResizer resizer; |
protected int smallWidth = DEFAULT_SMALL_WIDTH; |
protected int smallHeight = DEFAULT_SMALL_HEIGHT; |
protected int mediumWidth = DEFAULT_MEDIUM_WIDTH; |
protected int mediumHeight = DEFAULT_MEDIUM_HEIGHT; |
protected File cacheDir; |
protected String format = DEFAULT_FORMAT; |
protected Map smallCache = new HashMap(); |
protected Map mediumCache = new HashMap(); |
protected Map dirCache = new HashMap(); |
protected File imagesRoot; |
protected FileFilter imagesFilter = null; |
protected Comparator fileNameComparator = new FileNameComparator(true); |
protected Comparator fileNameComparatorRev = new FileNameComparator(false); |
protected File dirTemplate; |
protected ThumbnailPosition[] dirThumbnailPositions; |
protected int[] dirTemplateSize; |
protected long dirTemplateTimestamp; |
public Thumbnailer() |
{ |
this.logger = Logger.getLogger(this.getClass()); |
} |
public String getMime() |
{ |
return FileUtils.getMime(format); |
} |
public int[] getDirSize(File origin) |
throws IOException |
{ |
if(dirTemplateSize == null |
|| dirTemplateTimestamp != dirTemplate.lastModified()) |
{ |
dirTemplateSize = getOriginSize(dirTemplate); |
dirTemplateTimestamp = dirTemplate.lastModified(); |
} |
return dirTemplateSize; |
} |
public int[] getSmallSize(File origin) |
throws IOException |
{ |
CachedFile cached = getCached(smallCache, origin); |
if(cached == null) { |
int[] originSize = getOriginSize(origin); |
return calcSizes(originSize[0], originSize[1], smallWidth, smallHeight); |
} |
else { |
int[] originSize = new int[2]; |
originSize[0] = cached.getWidth(); |
originSize[1] = cached.getHeight(); |
return originSize; |
} |
} |
public int[] getMediumSize(File origin) |
throws IOException |
{ |
CachedFile cached = getCached(mediumCache, origin); |
if(cached == null) { |
int[] originSize = getOriginSize(origin); |
return calcSizes(originSize[0], originSize[1], mediumWidth, mediumHeight); |
} |
else { |
int[] originSize = new int[2]; |
originSize[0] = cached.getWidth(); |
originSize[1] = cached.getHeight(); |
return originSize; |
} |
} |
protected int[] getOriginSize(File origin) |
throws IOException |
{ |
if(logger.isDebugEnabled()) |
logger.debug("get size of " + origin.getCanonicalPath()); |
ImageInfo ii = new ImageInfo(); |
FileInputStream in = null; |
int[] res = new int[2]; |
try { |
in = new FileInputStream(origin); |
ii.setInput(in); |
if(!ii.check()) { |
logger.warn("not supported format of " + origin.getCanonicalPath()); |
res[0] = 0; |
res[1] = 0; |
} |
else{ |
res[0] = ii.getWidth(); |
res[1] = ii.getHeight(); |
} |
} |
finally { |
if(in != null) in.close(); |
} |
return res; |
} |
public void rebuildCache() |
throws IOException |
{ |
logger.info("rebuild cache"); |
deleteCache(); |
buildCache(); |
} |
public void deleteCache() |
throws IOException |
{ |
logger.info("delete cache"); |
deleteCache(cacheDir); |
} |
public void buildCache() |
throws IOException |
{ |
logger.info("build cache"); |
buildCache(imagesRoot); |
} |
protected void deleteCache(File dir) |
throws IOException |
{ |
File[] children = dir.listFiles(); |
if(children == null) return; // the dir does not exists |
Arrays.sort(children, fileNameComparator); |
for(int i = 0; i < children.length; i++) { |
if(children[i].isDirectory()) |
deleteCache(children[i]); |
else |
children[i].delete(); |
} |
dir.delete(); |
} |
protected void buildCache(File dir) |
throws IOException |
{ |
File[] children; |
if(imagesFilter == null) |
children = dir.listFiles(); |
else |
children = dir.listFiles(imagesFilter); |
if(children == null) return; // the dir does not exists |
Arrays.sort(children, fileNameComparator); |
for(int i = 0; i < children.length; i++) { |
if(children[i].isDirectory()) { |
writeDir(children[i], null); |
buildCache(children[i]); |
} |
else { |
writeSmall(children[i], null); |
writeMedium(children[i], null); |
} |
} |
} |
protected CachedFile getCached(Map cache, File imageFile) |
throws IOException |
{ |
CachedFile cached = (CachedFile)cache.get(imageFile.getCanonicalPath()); |
if(cached == null || !cached.getFile().exists()) { |
logger.debug("not found in cache"); |
return null; |
} |
if(cached.getOriginTimestamp() != imageFile.lastModified()) { |
cached.getFile().delete(); |
cache.remove(imageFile.getCanonicalPath()); |
logger.debug("timestamps dont match"); |
return null; |
} |
return cached; |
} |
protected boolean writeCached(Map cache, File imageFile, OutputStream out) |
throws IOException |
{ |
CachedFile cached = getCached(cache, imageFile); |
if(cached == null) return false; |
if(logger.isDebugEnabled()) |
logger.debug("write cached " + imageFile.getCanonicalPath()); |
if(out != null) { |
FileInputStream in = null; |
try { |
in = new FileInputStream(cached.getFile()); |
FileUtils.copyStreams(in, out); |
} |
finally { |
if(in != null) in.close(); |
} |
} |
return true; |
} |
protected void cacheThumbnail(Map cache, File imageFile, |
BufferedImage thumbnail, String suffix, int width, int height) |
throws IOException |
{ |
logger.debug("cache thumbnail " + suffix + " " |
+ imageFile.getCanonicalPath()); |
File dir = getCacheFileDir(imageFile); |
File cacheFile = new File(dir, |
imageFile.getName() + suffix + "." + format); |
dir.mkdirs(); |
ImageIO.write(thumbnail, format, cacheFile); |
cache.put(imageFile.getCanonicalPath(), |
new CachedFile(cacheFile, imageFile, |
cacheFile.lastModified(), imageFile.lastModified(), width, height)); |
} |
public void startup() |
throws IOException |
{ |
logger.info("startup"); |
loadCaches(cacheDir); |
logger.info("started"); |
} |
protected void loadCaches(File dir) |
throws IOException |
{ |
if(logger.isDebugEnabled()) |
logger.debug("load caches in " + dir.getCanonicalPath()); |
File[] children = dir.listFiles(); |
String dirEnd = DIR_SUFFIX + "." + format; |
String smallEnd = SMALL_SUFFIX + "." + format; |
String mediumEnd = MEDIUM_SUFFIX + "." + format; |
if(children == null) return; // the dir does not exists |
Arrays.sort(children, fileNameComparator); |
for(int i = 0; i < children.length; i++) { |
if(children[i].isDirectory()) |
loadCaches(children[i]); |
else { |
File origin; |
Map cache; |
if(children[i].getName().endsWith(smallEnd)) { |
origin = getOriginFile(children[i], SMALL_SUFFIX); |
cache = smallCache; |
if(logger.isDebugEnabled()) |
logger.debug("load cached small " + children[i].getCanonicalPath() |
+ " for " + origin.getCanonicalPath()); |
} |
else if(children[i].getName().endsWith(mediumEnd)) { |
origin = getOriginFile(children[i], MEDIUM_SUFFIX); |
cache = mediumCache; |
if(logger.isDebugEnabled()) |
logger.debug("load cached medium " + children[i].getCanonicalPath() |
+ " for " + origin.getCanonicalPath()); |
} |
else if(children[i].getName().endsWith(dirEnd)) { |
origin = getOriginFile(children[i], DIR_SUFFIX); |
cache = dirCache; |
if(logger.isDebugEnabled()) |
logger.debug("load cached dir " + children[i].getCanonicalPath() |
+ " for " + origin.getCanonicalPath()); |
} |
else { |
if(logger.isInfoEnabled()) |
logger.warn( |
"unknown type of cached " + children[i].getCanonicalPath()); |
continue; |
} |
long originTimestamp = origin.lastModified(); |
long cachedTimestamp = children[i].lastModified(); |
int[] sizes = getOriginSize(children[i]); |
if(origin.exists() && cachedTimestamp >= originTimestamp) { |
cache.put(origin.getCanonicalPath(), |
new CachedFile(children[i], origin, cachedTimestamp, |
originTimestamp, sizes[0], sizes[1])); |
logger.debug("added"); |
} |
else { |
children[i].delete(); |
if(logger.isDebugEnabled()) |
logger.debug("deleted: " + origin.exists() |
+ " " + cachedTimestamp + " " + originTimestamp); |
} |
} |
} |
} |
protected File getOriginFile(File cached, String suffix) |
throws IOException |
{ |
String fileEnd = suffix + "." + format; |
String fileName = cached.getName(); |
String cachedPath = cached.getParentFile().getCanonicalPath(); |
String cacheRoot = cacheDir.getCanonicalPath(); |
fileName = fileName.substring(0, fileName.length() - fileEnd.length()); |
if(!cacheRoot.equals(cachedPath)) |
if(!cacheRoot.endsWith(File.separator)) cacheRoot += File.separator; |
return new File(imagesRoot, cachedPath.substring(cacheRoot.length()) |
+ File.separator + fileName); |
} |
protected File getCacheFileDir(File imageFile) |
throws IOException |
{ |
String imagePath = imageFile.getParentFile().getCanonicalPath(); |
String rootPath = imagesRoot.getCanonicalPath(); |
if(imagePath.equals(rootPath)) return cacheDir; |
if(!rootPath.endsWith(File.separator)) rootPath += File.separator; |
if(!imagePath.startsWith(rootPath)) |
throw new RuntimeException("Image " + imageFile.getCanonicalPath() |
+ " is not under images root " + imagesRoot.getCanonicalPath()); |
return new File(cacheDir, imagePath.substring(rootPath.length())); |
} |
public void writeSmall(File imageFile, OutputStream out) |
throws IOException |
{ |
if(logger.isInfoEnabled()) |
logger.info("write small " + imageFile.getCanonicalPath()); |
if(writeCached(smallCache, imageFile, out)) return; |
BufferedImage small = createThumbnail(imageFile, smallWidth, smallHeight); |
if(small != null) { |
int sizes[] = calcSizes( |
small.getWidth(null), small.getHeight(null), smallWidth, smallHeight); |
cacheThumbnail( |
smallCache, imageFile, small, SMALL_SUFFIX, sizes[0], sizes[1]); |
if(out != null) ImageIO.write(small, format, out); |
} |
} |
public void writeMedium(File imageFile, OutputStream out) |
throws IOException |
{ |
if(logger.isInfoEnabled()) |
logger.info("write medium " + imageFile.getCanonicalPath()); |
if(writeCached(mediumCache, imageFile, out)) return; |
BufferedImage medium |
= createThumbnail(imageFile, mediumWidth, mediumHeight); |
if(medium != null) { |
int sizes[] = calcSizes(medium.getWidth(null), medium.getHeight(null), |
mediumWidth, mediumHeight); |
cacheThumbnail( |
mediumCache, imageFile, medium, MEDIUM_SUFFIX, sizes[0], sizes[1]); |
if(out != null) ImageIO.write(medium, format, out); |
} |
} |
public void writeDir(File dir, OutputStream out) |
throws IOException |
{ |
if(logger.isInfoEnabled()) |
logger.info("write dir " + dir.getCanonicalPath()); |
if(writeCached(dirCache, dir, out)) return; |
BufferedImage thumbnail = createDirThumbnail(dir); |
if(thumbnail != null) { |
if(dirTemplateSize == null |
|| dirTemplateTimestamp != dirTemplate.lastModified()) |
{ |
dirTemplateSize = getOriginSize(dirTemplate); |
dirTemplateTimestamp = dirTemplate.lastModified(); |
} |
cacheThumbnail(dirCache, dir, thumbnail, DIR_SUFFIX, |
dirTemplateSize[0], dirTemplateSize[1]); |
if(out != null) ImageIO.write(thumbnail, format, out); |
} |
} |
synchronized protected BufferedImage createThumbnail(File imageFile, |
int width, int height) |
throws IOException |
{ |
if(logger.isDebugEnabled()) |
logger.debug("create thumbnail " + imageFile.getCanonicalPath()); |
Image image = loadImage(imageFile.getCanonicalPath()); |
// = ImageIO.read(imageFile); |
int[] sizes; |
if(image == null) { // not supported format |
logger.warn("unsupported format for origin or operation interrupted"); |
return null; |
} |
else { |
sizes = calcSizes(image.getWidth(null), image.getHeight(null), |
width, height); |
logger.debug("resize to " + sizes[0] + "x" + sizes[1]); |
return resizer.resize(image, sizes[0], sizes[1]); |
} |
} |
synchronized protected BufferedImage createDirThumbnail(File dir) |
throws IOException |
{ |
if(logger.isDebugEnabled()) |
logger.debug("create dir thumbnail " + dir.getCanonicalPath()); |
Image template = loadImage(dirTemplate.getCanonicalPath()); |
BufferedImage dirThumbnail; |
Graphics graphics; |
int count; |
File[] firstFiles; |
if(template == null) { // not supported format |
logger.warn("unsupported format for template or operation interrupted"); |
return null; |
} |
dirThumbnail = createBufferedImage(template); |
graphics = dirThumbnail.getGraphics(); |
count = dirThumbnailPositions.length; |
firstFiles = new File[count]; |
count = getFirstFiles(dir, count, firstFiles, 0); |
for(int i = 0; i < count; i++) { |
Image image = loadImage(firstFiles[i].getCanonicalPath()); |
if(image == null) { // not supported format |
logger.warn("unsupported format for origin or operation interrupted"); |
return null; |
} |
else { |
BufferedImage thumbnail; |
int[] sizes; |
sizes = calcSizes(image.getWidth(null), image.getHeight(null), |
dirThumbnailPositions[i].getWidth(), |
dirThumbnailPositions[i].getHeight()); |
thumbnail = resizer.resize(image, sizes[0], sizes[1]); |
graphics.drawImage(thumbnail, |
getXPosition(dirThumbnailPositions[i].getX(), |
dirThumbnailPositions[i].getWidth(), sizes[0], |
dirThumbnailPositions[i].getHorAlign()), |
getYPosition(dirThumbnailPositions[i].getY(), |
dirThumbnailPositions[i].getHeight(), sizes[1], |
dirThumbnailPositions[i].getVertAlign()), |
null); |
} |
} |
return dirThumbnail; |
} |
protected Image loadImage(String fileName) |
{ |
// FIXME: probably toolbox reads an image not by every request but |
// caches it |
Toolkit toolkit = Toolkit.getDefaultToolkit(); |
Image image = toolkit.getImage(fileName); |
toolkit.prepareImage(image, -1, -1, null); |
while(true) { |
int status = toolkit.checkImage(image, -1, -1, null); |
if((status & ImageObserver.ALLBITS) != 0) break; |
if((status & ImageObserver.ERROR) != 0) return null; |
try { |
Thread.sleep(100); |
} |
catch(Exception ex) { |
return null; |
} |
} |
return image; |
} |
protected int[] calcSizes(int width, int height, int maxWidth, int maxHeight) |
{ |
int[] result = new int[2]; |
double xRate; |
double yRate; |
if(width == 0 || height == 0) { |
result[0] = 0; |
result[1] = 0; |
return result; |
} |
xRate = (double)maxWidth / (double)width; |
yRate = (double)maxHeight / (double)height; |
if(xRate >= 1.0 || yRate >= 1.0) { |
result[0] = width; |
result[1] = height; |
} |
else if(xRate > yRate) { |
result[0] = maxHeight * width / height; |
result[1] = maxHeight; |
} |
else { |
result[0] = maxWidth; |
result[1] = maxWidth * height / width; |
} |
return result; |
} |
protected int getXPosition(int left, int maxWidth, int width, int align) |
{ |
if(align == ThumbnailPosition.ALIGN_HOR_LEFT) |
return left; |
else if(align == ThumbnailPosition.ALIGN_HOR_RIGHT) |
return left + (maxWidth - width); |
else if(align == ThumbnailPosition.ALIGN_HOR_CENTER) |
return left + (maxWidth - width) / 2; |
else |
throw new RuntimeException("Unknown align type: " + align); |
} |
protected int getYPosition(int top, int maxHeight, int height, int align) |
{ |
if(align == ThumbnailPosition.ALIGN_VERT_TOP) |
return top; |
else if(align == ThumbnailPosition.ALIGN_VERT_BOTTOM) |
return top + (maxHeight - height); |
else if(align == ThumbnailPosition.ALIGN_VERT_CENTER) |
return top + (maxHeight - height) / 2; |
else |
throw new RuntimeException("Unknown align type: " + align); |
} |
protected int getFirstFiles(File dir, int count, File[] files, int pos) |
{ |
File[] children; |
if(imagesFilter == null) |
children = dir.listFiles(); |
else |
children = dir.listFiles(imagesFilter); |
if(children == null) return 0; // the dir does not exists |
Arrays.sort(children, fileNameComparatorRev); |
for(int i = 0; i < children.length; i++) { |
if(children[i].isDirectory()) |
; //pos = getFirstFiles(children[i], count, files, pos); |
else { |
files[pos++] = children[i]; |
} |
if(pos >= count) break; |
} |
return pos; |
} |
protected BufferedImage createBufferedImage(Image image) |
{ |
if(image == null) return null; |
int width = image.getWidth(null); |
int height = image.getHeight(null); |
if(width < 1 || height < 1) return null; |
// get pixels |
int[] pixels = new int[width * height]; |
PixelGrabber pg = new PixelGrabber(image, |
0, 0, width, height, pixels, 0, width); |
try { |
pg.grabPixels(); |
} |
catch(InterruptedException e) { |
return null; |
} |
if((pg.getStatus() & ImageObserver.ABORT) != 0) return null; |
// create buffered image |
BufferedImage buffered = new BufferedImage(width, height, |
BufferedImage.TYPE_INT_RGB); |
for(int y = 0; y < height; y++) { |
for(int x = 0; x < width; x++) |
buffered.setRGB(x, y, pixels[y * width + x]); |
} |
return buffered; |
} |
public ImageResizer getResizer() |
{ |
return resizer; |
} |
public void setResizer(ImageResizer resizer) |
{ |
this.resizer = resizer; |
} |
public String getFormat() |
{ |
return format; |
} |
public void setFormat(String format) |
{ |
this.format = format; |
} |
public File getCacheDir() |
{ |
return cacheDir; |
} |
public void setCacheDir(File dir) |
{ |
this.cacheDir = dir; |
} |
public File getImagesRoot() |
{ |
return imagesRoot; |
} |
public void setImagesRoot(File dir) |
{ |
this.imagesRoot = dir; |
} |
public int getSmallWidth() |
{ |
return smallWidth; |
} |
public void setSmallWidth(int width) |
{ |
this.smallWidth = width; |
} |
public int getSmallHeight() |
{ |
return smallHeight; |
} |
public void setSmallHeight(int height) |
{ |
this.smallHeight = height; |
} |
public int getMediumWidth() |
{ |
return mediumWidth; |
} |
public void setMediumWidth(int width) |
{ |
this.mediumWidth = width; |
} |
public int getMediumHeight() |
{ |
return mediumHeight; |
} |
public void setMediumHeight(int height) |
{ |
this.mediumHeight = height; |
} |
public FileFilter getImagesFilter() |
{ |
return imagesFilter; |
} |
public void setImagesFilter(FileFilter filter) |
{ |
this.imagesFilter = filter; |
} |
public File getDirTemplate() |
{ |
return dirTemplate; |
} |
public void setDirTemplate(File dirTemplate) |
{ |
this.dirTemplate = dirTemplate; |
} |
public ThumbnailPosition[] getDirThumbnailPositions() |
{ |
return dirThumbnailPositions; |
} |
public void setDirThumbnailPositions( |
ThumbnailPosition[] dirThumbnailPositions) |
{ |
this.dirThumbnailPositions = dirThumbnailPositions; |
} |
} |
/sun/PhotoAlbum/trunk/bin/dos2unix.sh |
---|
0,0 → 1,4 |
#!/bin/sh |
find . -not -path '*/.svn/*' \( -name '*.java' -or -name '*.jsp' -or -name '*.tld' -or -name '*.xml' -or -name '*.sample' \) -exec sh -c 'tr -d "\r" < {} > tmp; mv tmp {}' \; |
Property changes: |
Added: svn:executable |
/sun/PhotoAlbum/trunk/photos.xml |
---|
0,0 → 1,6 |
<Context |
path="/photos" |
docBase="/home/common/prog/PhotoAlbum/webapp" |
debug="0" |
privileged="false" |
/> |
/sun/PhotoAlbum/trunk/build.xml |
---|
0,0 → 1,38 |
<project name="PhotoAlbum" default="deploy" basedir="."> |
<property name="build.compiler" value="jikes"/> |
<property name="src" location="src"/> |
<property name="classes" location="classes"/> |
<property name="classpath" value=""/> |
<target name="compile"> |
<mkdir dir="${classes}" /> |
<javac |
srcdir="${src}" |
destdir="${classes}" |
classpath="${classpath}:${classes}" |
debug="on" |
extdirs="lib:webapp/WEB-INF/lib" |
/> |
</target> |
<target name="deploy" depends="compile"> |
<copy todir="webapp/WEB-INF/classes"> |
<fileset dir="classes"/> |
</copy> |
<copy todir="webapp/WEB-INF/classes" file="conf/log4j.properties" /> |
<touch file="webapp/WEB-INF/web.xml" /> |
</target> |
<target name="clean"> |
<delete dir="${classes}"/> |
<delete dir="webapp/WEB-INF/classes"/> |
</target> |
<target name="all" depends="clean,deploy" /> |
</project> |
/sun/PhotoAlbum/trunk |
---|
Property changes: |
Added: svn:ignore |
+classes |
/sun/StrutsX/trunk/output |
---|
Property changes: |
Added: svn:ignore |
+strutsx.jar |
/sun/StrutsX/trunk/src/ak/strutsx/ErrorHandlerX.java |
---|
0,0 → 1,23 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
public interface ErrorHandlerX { |
public void handleErrors(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Exception; |
} |
/sun/StrutsX/trunk/src/ak/strutsx/RequestProcessorX.java |
---|
0,0 → 1,231 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx; |
import java.io.IOException; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.Globals; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.RequestProcessor; |
import org.apache.struts.config.ForwardConfig; |
/** |
* To use this processor add |
* <controller processorClass="ak.strutsx.RequestProcessorX" /> |
* into the struts-config.xml file. |
*/ |
public class RequestProcessorX |
extends RequestProcessor |
{ |
/** |
* <p>Process an <code>HttpServletRequest</code> and create the |
* corresponding <code>HttpServletResponse</code>.</p> |
* |
* @param request The servlet request we are processing |
* @param response The servlet response we are creating |
* |
* @exception IOException if an input/output error occurs |
* @exception ServletException if a processing exception occurs |
*/ |
public void process(HttpServletRequest request, |
HttpServletResponse response) |
throws IOException, ServletException { |
// Wrap multipart requests with a special wrapper |
request = processMultipart(request); |
// Identify the path component we will use to select a mapping |
String path = processPath(request, response); |
if (path == null) { |
return; |
} |
if (log.isDebugEnabled()) { |
log.debug("Processing a '" + request.getMethod() + |
"' for path '" + path + "'"); |
} |
// Select a Locale for the current user if requested |
processLocale(request, response); |
// Set the content type and no-caching headers if requested |
processContent(request, response); |
processNoCache(request, response); |
// General purpose preprocessing hook |
if (!processPreprocess(request, response)) { |
return; |
} |
// Identify the mapping for this request |
ActionMapping mapping = processMapping(request, response, path); |
if (mapping == null) { |
return; |
} |
// Check for any role required to perform this action |
if (!processRoles(request, response, mapping)) { |
return; |
} |
// Create or acquire the Action instance to process this request |
// Do this here, because we need the action in case form validation is failed |
Action action = null; |
if (mapping.getType() != null) { |
action = processActionCreate(request, response, mapping); |
} |
// Process any ActionForm bean related to this request |
ActionForm form = processActionForm(request, response, mapping); |
processPopulate(request, response, form, mapping); |
if (!processValidate(request, response, action, form, mapping)) { |
return; |
} |
// Process a forward or include specified by this mapping |
if (!processForward(request, response, mapping)) { |
return; |
} |
if (!processInclude(request, response, mapping)) { |
return; |
} |
// no action |
if (action == null) { |
return; |
} |
// Call the Action instance itself |
ActionForward forward = |
processActionPerform(request, response, |
action, form, mapping); |
// Process the returned ActionForward instance |
processForwardConfig(request, response, forward); |
} |
/** |
* <p>If this request was not cancelled, and the request's |
* {@link ActionMapping} has not disabled validation, call the |
* <code>validate()</code> method of the specified {@link ActionForm}, |
* and forward back to the input form if there were any errors. |
* Return <code>true</code> if we should continue processing, |
* or <code>false</code> if we have already forwarded control back |
* to the input form.</p> |
* |
* @param request The servlet request we are processing |
* @param response The servlet response we are creating |
* @param action The Action instance we are populating |
* @param form The ActionForm instance we are populating |
* @param mapping The ActionMapping we are using |
* |
* @exception IOException if an input/output error occurs |
* @exception ServletException if a servlet exception occurs |
*/ |
protected boolean processValidate(HttpServletRequest request, |
HttpServletResponse response, |
Action action, |
ActionForm form, |
ActionMapping mapping) |
throws IOException, ServletException { |
if (form == null) { |
return (true); |
} |
// Was this request cancelled? |
if (request.getAttribute(Globals.CANCEL_KEY) != null) { |
if (log.isDebugEnabled()) { |
log.debug(" Cancelled transaction, skipping validation"); |
} |
return (true); |
} |
// Has validation been turned off for this mapping? |
if (!mapping.getValidate()) { |
return (true); |
} |
// Call the form bean's validation method |
if (log.isDebugEnabled()) { |
log.debug(" Validating input form properties"); |
} |
ActionErrors errors = form.validate(mapping, request); |
if ((errors == null) || errors.isEmpty()) { |
if (log.isTraceEnabled()) { |
log.trace(" No errors detected, accepting input"); |
} |
return (true); |
} |
// Form validation failed, try to inform the action |
if((action != null) && (action instanceof ErrorHandlerX)) { |
processValidationFailed(request, response, |
(ErrorHandlerX)action, form, mapping); |
} |
// Special handling for multipart request |
if (form.getMultipartRequestHandler() != null) { |
if (log.isTraceEnabled()) { |
log.trace(" Rolling back multipart request"); |
} |
form.getMultipartRequestHandler().rollback(); |
} |
// Has an input form been specified for this mapping? |
String input = mapping.getInput(); |
if (input == null) { |
if (log.isTraceEnabled()) { |
log.trace(" Validation failed but no input form available"); |
} |
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, |
getInternal().getMessage("noInput", |
mapping.getPath())); |
return (false); |
} |
// Save our error messages and return to the input form if possible |
if (log.isDebugEnabled()) { |
log.debug(" Validation failed, returning to '" + input + "'"); |
} |
request.setAttribute(Globals.ERROR_KEY, errors); |
if (moduleConfig.getControllerConfig().getInputForward()) { |
ForwardConfig forward = mapping.findForward(input); |
processForwardConfig( request, response, forward); |
} else { |
internalModuleRelativeForward(input, request, response); |
} |
return (false); |
} |
protected void |
processValidationFailed(HttpServletRequest request, |
HttpServletResponse response, |
ErrorHandlerX errorHandler, |
ActionForm form, |
ActionMapping mapping) |
throws IOException, ServletException { |
try { |
errorHandler.handleErrors(mapping, form, request, response); |
} catch (Exception e) { |
processException(request, response, e, form, mapping); |
} |
} |
} |
/sun/StrutsX/trunk/src/ak/strutsx/RequestUtilsX.java |
---|
0,0 → 1,94 |
/** |
* Extends and based on Apache Struts source code. |
* |
* Copyleft Anatoli Klassen (anatoli@aksoft.net) |
*/ |
package ak.strutsx; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.struts.Globals; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionServlet; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.DynaActionFormClass; |
import org.apache.struts.config.ModuleConfig; |
import org.apache.struts.config.FormBeanConfig; |
import org.apache.struts.config.FormPropertyConfig; |
import org.apache.struts.util.RequestUtils; |
public class RequestUtilsX |
extends RequestUtils |
{ |
public static ActionForm createActionForm( |
Action action, |
HttpServletRequest request, |
String name) { |
return createActionForm(name, |
(ModuleConfig)request.getAttribute(Globals.MODULE_KEY), action.getServlet()); |
} |
public static ActionForm createActionForm( |
String name, |
ModuleConfig moduleConfig, |
ActionServlet servlet) { |
FormBeanConfig config = moduleConfig.findFormBeanConfig(name); |
ActionForm instance = null; |
// Create and return a new form bean instance |
if (config.getDynamic()) { |
try { |
DynaActionFormClass dynaClass = |
DynaActionFormClass.createDynaActionFormClass(config); |
instance = (ActionForm) dynaClass.newInstance(); |
initializeDynaActionForm((DynaActionForm) instance, config); |
if (log.isDebugEnabled()) { |
log.debug( |
" Creating new DynaActionForm instance " |
+ "of type '" |
+ config.getType() |
+ "'"); |
log.trace(" --> " + instance); |
} |
} catch (Throwable t) { |
log.error(servlet.getInternal().getMessage("formBean", config.getType()), t); |
return (null); |
} |
} else { |
try { |
instance = (ActionForm) applicationInstance(config.getType()); |
if (log.isDebugEnabled()) { |
log.debug( |
" Creating new ActionForm instance " |
+ "of type '" |
+ config.getType() |
+ "'"); |
log.trace(" --> " + instance); |
} |
} catch (Throwable t) { |
log.error(servlet.getInternal().getMessage("formBean", config.getType()), t); |
return (null); |
} |
} |
instance.setServlet(servlet); |
return (instance); |
} |
public static void initializeDynaActionForm(DynaActionForm instance, FormBeanConfig config) { |
if (config == null) { |
return; |
} |
FormPropertyConfig props[] = config.findFormPropertyConfigs(); |
for (int i = 0; i < props.length; i++) { |
instance.set(props[i].getName(), props[i].initial()); |
} |
} |
} |
/sun/StrutsX/trunk/build.xml |
---|
0,0 → 1,31 |
<project name="StrutsX" default="compile" basedir="."> |
<!--property name="build.compiler" value="jikes"/--> |
<property name="output.lib" location="output/strutsx.jar"/> |
<property name="src" location="src"/> |
<property name="classes" location="classes"/> |
<property name="classpath" value=""/> |
<target name="compile"> |
<mkdir dir="${classes}" /> |
<javac |
srcdir="${src}" |
destdir="${classes}" |
classpath="${classpath}:${classes}" |
debug="on" |
extdirs="lib" |
/> |
<jar destfile="${output.lib}" basedir="${classes}"/> |
</target> |
<target name="clean"> |
<delete dir="${classes}"/> |
<delete file="${output.lib}"/> |
</target> |
<target name="all" depends="clean,compile" /> |
</project> |
/sun/StrutsX/trunk/lib/commons-beanutils.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/StrutsX/trunk/lib/commons-logging.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/StrutsX/trunk/lib/servlet.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/StrutsX/trunk/lib/struts.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/StrutsX/trunk |
---|
Property changes: |
Added: svn:ignore |
+classes |
/sun/SimpleChat/.cvsignore |
---|
0,0 → 1,0 |
classes |
/sun/SimpleChat/trunk/conf/log4j.properties |
---|
0,0 → 1,8 |
log4j.rootLogger=warn, stdout |
log4j.appender.stdout=org.apache.log4j.ConsoleAppender |
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout |
log4j.appender.stdout.layout.ConversionPattern=[%t] %-5p %c - %m%n |
log4j.logger.ak=warn |
log4j.logger.ak.simplechat=warn |
/sun/SimpleChat/trunk/lib/servlet.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/src/ak/simplechat/MessageForm.java |
---|
0,0 → 1,39 |
package ak.simplechat; |
import javax.servlet.http.HttpServletRequest; |
import org.apache.struts.action.ActionError; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionMapping; |
public class MessageForm |
extends ActionForm |
{ |
protected String message; |
public String getMessage() |
{ |
return message; |
} |
public void setMessage(String message) |
{ |
this.message = message; |
} |
public void reset(ActionMapping mapping, HttpServletRequest request) |
{ |
this.message = null; |
} |
public ActionErrors validate(ActionMapping mapping, |
HttpServletRequest request) |
{ |
ActionErrors errors = new ActionErrors(); |
if((message == null) || (message.length() < 1)) |
errors.add("message", new ActionError("error.message.required")); |
return (errors); |
} |
} |
/sun/SimpleChat/trunk/src/ak/simplechat/ApplicationResources.properties |
---|
0,0 → 1,6 |
title.main=SimpleChat |
title.message=SimpleChat - Message |
title.display=SimpleChat - Display |
error.frames.required=Sorry, I need frames to work :( |
button.send=Send |
error.message.required=Hey, say something! |
/sun/SimpleChat/trunk/src/ak/simplechat/EncodingFilter.java |
---|
0,0 → 1,36 |
package ak.simplechat; |
import java.io.IOException; |
import javax.servlet.Filter; |
import javax.servlet.FilterChain; |
import javax.servlet.FilterConfig; |
import javax.servlet.ServletException; |
import javax.servlet.ServletRequest; |
import javax.servlet.ServletResponse; |
public class EncodingFilter implements Filter |
{ |
public static final String ENCODING = "UTF-8"; |
private FilterConfig filterConfig; |
public void init(FilterConfig filterConfig) |
throws ServletException |
{ |
this.filterConfig = filterConfig; |
} |
public void doFilter(ServletRequest request, ServletResponse response, |
FilterChain chain) |
throws IOException, ServletException |
{ |
if(request.getCharacterEncoding() == null) |
request.setCharacterEncoding(ENCODING); |
chain.doFilter(request, response); |
} |
public void destroy() |
{ |
} |
} |
/sun/SimpleChat/trunk/src/ak/simplechat/Logic.java |
---|
0,0 → 1,32 |
package ak.simplechat; |
import java.util.Date; |
import java.util.List; |
import java.util.ArrayList; |
public class Logic |
{ |
public static final int MESSAGES_LIMIT = 30; |
private static ArrayList messages = new ArrayList(); |
public static void addMessage(String user, String message) |
{ |
synchronized(messages) { |
messages.add(0, new Message(user, message, new Date())); |
while(messages.size() > MESSAGES_LIMIT) |
messages.remove(messages.size() - 1); |
} |
} |
public static List getMessages() |
{ |
List result; |
synchronized(messages) { |
result = (List)messages.clone(); |
} |
return result; |
} |
} |
/sun/SimpleChat/trunk/src/ak/simplechat/ApplicationResources_ru.properties |
---|
0,0 → 1,6 |
title.main=SimpleChat |
title.message=SimpleChat - Ñîîáùåíèå |
title.display=SimpleChat - Ñïèñîê |
error.frames.required=Ñîððè, íå ìîãó ðàáîòàòü áåç ôðåéìîâ :( |
button.send=Óãó |
error.message.required=Ñêàæè õîòü ÷òî-íèáóäü! |
/sun/SimpleChat/trunk/src/ak/simplechat/ApplicationResources_de.properties |
---|
0,0 → 1,6 |
title.main=SimpleChat |
title.message=SimpleChat - Nachricht |
title.display=SimpleChat - Liste |
error.frames.required=Es tut mir leid, aber ich brauche Frames :( |
button.send=Los |
error.message.required=Na, sag was! |
/sun/SimpleChat/trunk/src/ak/simplechat/MessageAction.java |
---|
0,0 → 1,30 |
package ak.simplechat; |
import java.util.List; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
public final class MessageAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
MessageForm theForm = (MessageForm)form; |
String user = null; |
String message = theForm.getMessage(); |
if(request.getUserPrincipal() != null) |
user = request.getUserPrincipal().getName(); |
if(message != null && !message.equals("")) |
Logic.addMessage(user, message); |
return mapping.findForward("message"); |
} |
} |
/sun/SimpleChat/trunk/src/ak/simplechat/DisplayAction.java |
---|
0,0 → 1,22 |
package ak.simplechat; |
import java.util.List; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
public final class DisplayAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
request.setAttribute("messages", Logic.getMessages()); |
return mapping.findForward("success"); |
} |
} |
/sun/SimpleChat/trunk/src/ak/simplechat/Message.java |
---|
0,0 → 1,32 |
package ak.simplechat; |
import java.util.Date; |
public class Message |
{ |
private String user; |
private String message; |
private Date stamp; |
public Message(String user, String message, Date stamp) |
{ |
this.user = user; |
this.message = message; |
this.stamp = stamp; |
} |
public String getUser() |
{ |
return user; |
} |
public String getMessage() |
{ |
return message; |
} |
public Date getStamp() |
{ |
return stamp; |
} |
} |
/sun/SimpleChat/trunk/build.xml |
---|
0,0 → 1,62 |
<project name="SimpleChat" default="deploy" basedir="."> |
<property name="build.compiler" value="jikes"/> |
<property name="src" location="src"/> |
<property name="classes" location="classes"/> |
<property name="classpath" value=""/> |
<target name="compile"> |
<mkdir dir="${classes}" /> |
<javac |
srcdir="${src}" |
destdir="${classes}" |
classpath="${classpath}:${classes}" |
debug="on" |
extdirs="lib:webapp/WEB-INF/lib" |
/> |
</target> |
<target name="deploy" depends="compile"> |
<copy todir="webapp/WEB-INF/classes"> |
<fileset dir="classes"/> |
</copy> |
<copy todir="webapp/WEB-INF/classes"> |
<fileset |
dir="${src}" |
includes="**/*.properties" |
excludes="**/*_*.properties" |
/> |
</copy> |
<delete> |
<fileset dir="webapp/WEB-INF/classes" includes="**/*_*.properties"/> |
</delete> |
<native2ascii |
encoding="Cp1251" |
src="${src}" |
dest="webapp/WEB-INF/classes" |
includes="**/*_ru.properties" |
/> |
<native2ascii |
encoding="ISO8859_1" |
src="${src}" |
dest="webapp/WEB-INF/classes" |
includes="**/*_de.properties" |
/> |
<copy todir="webapp/WEB-INF/classes" file="conf/log4j.properties" /> |
</target> |
<target name="clean"> |
<delete dir="${classes}"/> |
<delete dir="webapp/WEB-INF/classes"/> |
</target> |
<target name="all" depends="clean,deploy" /> |
</project> |
/sun/SimpleChat/trunk/chat.xml |
---|
0,0 → 1,6 |
<Context |
path="/chat" |
docBase="/home/common/prog/SimpleChat/webapp" |
debug="0" |
privileged="false" |
/> |
/sun/SimpleChat/trunk/webapp/display.jsp |
---|
0,0 → 1,22 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<html> |
<head> |
<title><bean:message key="title.display" /></title> |
<meta http-equiv="refresh" content="5; URL=display.do"> |
</head> |
<body> |
<logic:iterate name="messages" id="message"> |
<bean:write name="message" property="user" ignore="true" /> |
[<bean:write name="message" property="stamp" format="HH:mm:ss" />] |
<bean:write name="message" property="message" ignore="true" /><br> |
</logic:iterate> |
</body> |
</html> |
/sun/SimpleChat/trunk/webapp/index.jsp |
---|
0,0 → 1,17 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<html> |
<head> |
<title><bean:message key="title.main" /></title> |
</head> |
<frameset rows="60,*"> |
<frame src="message.jsp" name="SimpleChat_Message"> |
<frame src="display.do" name="SimpleChat_Display"> |
<noframes><bean:message key="error.frames.required" /></noframes> |
</frameset> |
</html> |
/sun/SimpleChat/trunk/webapp/WEB-INF/struts-html.tld |
---|
0,0 → 1,2971 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>html</shortname> |
<uri>http://jakarta.apache.org/struts/tags-html</uri> |
<tag> |
<name>base</name> |
<tagclass>org.apache.struts.taglib.html.BaseTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>server</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>button</name> |
<tagclass>org.apache.struts.taglib.html.ButtonTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>cancel</name> |
<tagclass>org.apache.struts.taglib.html.CancelTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.html.CheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.html.ErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.html.FileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.html.FormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focusIndex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>frame</name> |
<tagclass>org.apache.struts.taglib.html.FrameTag</tagclass> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameborder</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>frameName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>longdesc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginheight</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>marginwidth</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>noresize</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scrolling</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.html.HiddenTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>write</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>html</name> |
<tagclass>org.apache.struts.taglib.html.HtmlTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>xhtml</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.html.ImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.html.ImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>javascript</name> |
<tagclass>org.apache.struts.taglib.html.JavascriptValidatorTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>cdata</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>dynamicJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>staticJavascript</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>htmlComment</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.html.LinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.html.MessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.html.MultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>option</name> |
<tagclass>org.apache.struts.taglib.html.OptionTag</tagclass> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.html.OptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.html.OptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.html.PasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.html.RadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>idName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>reset</name> |
<tagclass>org.apache.struts.taglib.html.ResetTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>rewrite</name> |
<tagclass>org.apache.struts.taglib.html.RewriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.html.SelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.html.SubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.html.TextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.html.TextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>xhtml</name> |
<tagclass>org.apache.struts.taglib.html.XhtmlTag</tagclass> |
<bodycontent>empty</bodycontent> |
</tag> |
</taglib> |
/sun/SimpleChat/trunk/webapp/WEB-INF/struts-bean.tld |
---|
0,0 → 1,382 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>bean</shortname> |
<uri>http://jakarta.apache.org/struts/tags-bean</uri> |
<tag> |
<name>cookie</name> |
<tagclass>org.apache.struts.taglib.bean.CookieTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.CookieTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.bean.DefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>header</name> |
<tagclass>org.apache.struts.taglib.bean.HeaderTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.HeaderTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>include</name> |
<tagclass>org.apache.struts.taglib.bean.IncludeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>page</name> |
<tagclass>org.apache.struts.taglib.bean.PageTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.PageTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>parameter</name> |
<tagclass>org.apache.struts.taglib.bean.ParameterTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ParameterTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>resource</name> |
<tagclass>org.apache.struts.taglib.bean.ResourceTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>input</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.bean.SizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>struts</name> |
<tagclass>org.apache.struts.taglib.bean.StrutsTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>formBean</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>mapping</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.bean.WriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/SimpleChat/trunk/webapp/WEB-INF/validation.xml |
---|
0,0 → 1,58 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<form-validation> |
<!-- |
This is a blank Validator form file with a commented examples. |
--> |
<global> |
<!-- An example global constant |
<constant> |
<constant-name>postalCode</constant-name> |
<constant-value>^\d{5}\d*$</constant-value> |
</constant> |
end example--> |
</global> |
<formset> |
<!-- An example form |
<form name="logonForm"> |
<field |
property="username" |
depends="required"> |
<arg0 key="logonForm.username"/> |
</field> |
<field |
property="password" |
depends="required,mask"> |
<arg0 key="logonForm.password"/> |
<var> |
<var-name>mask</var-name> |
<var-value>^[0-9a-zA-Z]*$</var-value> |
</var> |
</field> |
</form> |
end example form --> |
</formset> |
<!-- An example formset for another locale |
<formset language="fr"> |
<constant> |
<constant-name>postalCode</constant-name> |
<constant-value>^[0-9a-zA-Z]*$</constant-value> |
</constant> |
</formset> |
--> |
</form-validation> |
/sun/SimpleChat/trunk/webapp/WEB-INF/validator-rules.xml |
---|
0,0 → 1,988 |
<!DOCTYPE form-validation PUBLIC |
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" |
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> |
<!-- |
This file contains the default Struts Validator pluggable validator |
definitions. It should be placed somewhere under /WEB-INF and |
referenced in the struts-config.xml under the plug-in element |
for the ValidatorPlugIn. |
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> |
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml, |
/WEB-INF/validation.xml"/> |
</plug-in> |
These are the default error messages associated with |
each validator defined in this file. They should be |
added to your projects ApplicationResources.properties |
file or you can associate new ones by modifying the |
pluggable validators msg attributes in this file. |
# Struts Validator Error Messages |
errors.required={0} is required. |
errors.minlength={0} can not be less than {1} characters. |
errors.maxlength={0} can not be greater than {1} characters. |
errors.invalid={0} is invalid. |
errors.byte={0} must be a byte. |
errors.short={0} must be a short. |
errors.integer={0} must be an integer. |
errors.long={0} must be a long. |
errors.float={0} must be a float. |
errors.double={0} must be a double. |
errors.date={0} is not a date. |
errors.range={0} is not in the range {1} through {2}. |
errors.creditcard={0} is an invalid credit card number. |
errors.email={0} is an invalid e-mail address. |
--> |
<form-validation> |
<global> |
<validator name="required" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequired" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
<javascript><![CDATA[ |
function validateRequired(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRequired = new required(); |
for (x in oRequired) { |
var field = form[oRequired[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'file' || |
field.type == 'select-one' || |
field.type == 'radio' || |
field.type == 'password') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value == '') { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oRequired[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="requiredif" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateRequiredIf" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
org.apache.commons.validator.Validator, |
javax.servlet.http.HttpServletRequest" |
msg="errors.required"> |
</validator> |
<validator name="minlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMinLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.minlength"> |
<javascript><![CDATA[ |
function validateMinLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMinLength = new minlength(); |
for (x in oMinLength) { |
if (form[oMinLength[x][0]].type == 'text' || |
form[oMinLength[x][0]].type == 'textarea') { |
var iMin = parseInt(oMinLength[x][2]("minlength")); |
if (form[oMinLength[x][0]].value.length < iMin) { |
if (i == 0) { |
focusField = form[oMinLength[x][0]]; |
} |
fields[i++] = oMinLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="maxlength" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMaxLength" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.maxlength"> |
<javascript><![CDATA[ |
function validateMaxLength(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMaxLength = new maxlength(); |
for (x in oMaxLength) { |
if (form[oMaxLength[x][0]].type == 'text' || |
form[oMaxLength[x][0]].type == 'textarea') { |
var iMax = parseInt(oMaxLength[x][2]("maxlength")); |
if (form[oMaxLength[x][0]].value.length > iMax) { |
if (i == 0) { |
focusField = form[oMaxLength[x][0]]; |
} |
fields[i++] = oMaxLength[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="mask" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateMask" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.invalid"> |
<javascript><![CDATA[ |
function validateMask(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oMasked = new mask(); |
for (x in oMasked) { |
if ((form[oMasked[x][0]].type == 'text' || |
form[oMasked[x][0]].type == 'textarea' || |
form[oMasked[x][0]].type == 'password') && |
(form[oMasked[x][0]].value.length > 0)) { |
if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) { |
if (i == 0) { |
focusField = form[oMasked[x][0]]; |
} |
fields[i++] = oMasked[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function matchPattern(value, mask) { |
var bMatched = mask.exec(value); |
if (!bMatched) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="byte" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateByte" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.byte" |
jsFunctionName="ByteValidations"> |
<javascript><![CDATA[ |
function validateByte(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oByte = new ByteValidations(); |
for (x in oByte) { |
var field = form[oByte[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oByte[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="short" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateShort" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.short" |
jsFunctionName="ShortValidations"> |
<javascript><![CDATA[ |
function validateShort(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oShort = new ShortValidations(); |
for (x in oShort) { |
var field = form[oShort[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oShort[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="integer" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateInteger" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.integer" |
jsFunctionName="IntegerValidations"> |
<javascript><![CDATA[ |
function validateInteger(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oInteger = new IntegerValidations(); |
for (x in oInteger) { |
var field = form[oInteger[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
if (!isAllDigits(value)) { |
bValid = false; |
} else { |
var iValue = parseInt(value); |
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oInteger[x][1]; |
bValid = false; |
} |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isAllDigits(argvalue) { |
argvalue = argvalue.toString(); |
var validChars = "0123456789"; |
var startFrom = 0; |
if (argvalue.substring(0, 2) == "0x") { |
validChars = "0123456789abcdefABCDEF"; |
startFrom = 2; |
} else if (argvalue.charAt(0) == "0") { |
validChars = "01234567"; |
startFrom = 1; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="long" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateLong" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.long"/> |
<validator name="float" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloat" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.float" |
jsFunctionName="FloatValidations"> |
<javascript><![CDATA[ |
function validateFloat(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oFloat = new FloatValidations(); |
for (x in oFloat) { |
var field = form[oFloat[x][0]]; |
if (field.type == 'text' || |
field.type == 'textarea' || |
field.type == 'select-one' || |
field.type == 'radio') { |
var value = ''; |
// get field's value |
if (field.type == "select-one") { |
var si = field.selectedIndex; |
if (si >= 0) { |
value = field.options[si].value; |
} |
} else { |
value = field.value; |
} |
if (value.length > 0) { |
var iValue = parseFloat(value); |
if (isNaN(iValue)) { |
if (i == 0) { |
focusField = field; |
} |
fields[i++] = oFloat[x][1]; |
bValid = false; |
} |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="double" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDouble" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.double"/> |
<validator name="date" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateDate" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.date" |
jsFunctionName="DateValidations"> |
<javascript><![CDATA[ |
function validateDate(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oDate = new DateValidations(); |
for (x in oDate) { |
var value = form[oDate[x][0]].value; |
var datePattern = oDate[x][2]("datePatternStrict"); |
if ((form[oDate[x][0]].type == 'text' || |
form[oDate[x][0]].type == 'textarea') && |
(value.length > 0) && |
(datePattern.length > 0)) { |
var MONTH = "MM"; |
var DAY = "dd"; |
var YEAR = "yyyy"; |
var orderMonth = datePattern.indexOf(MONTH); |
var orderDay = datePattern.indexOf(DAY); |
var orderYear = datePattern.indexOf(YEAR); |
if ((orderDay < orderYear && orderDay > orderMonth)) { |
var iDelim1 = orderMonth + MONTH.length; |
var iDelim2 = orderDay + DAY.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderDay && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderDay) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[2], matched[1], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth < orderYear && orderMonth > orderDay)) { |
var iDelim1 = orderDay + DAY.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); |
} else if (iDelim2 == orderYear) { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[1], matched[2], matched[3])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else if ((orderMonth > orderYear && orderMonth < orderDay)) { |
var iDelim1 = orderYear + YEAR.length; |
var iDelim2 = orderMonth + MONTH.length; |
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); |
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); |
if (iDelim1 == orderMonth && iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); |
} else if (iDelim1 == orderMonth) { |
dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); |
} else if (iDelim2 == orderDay) { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); |
} else { |
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); |
} |
var matched = dateRegexp.exec(value); |
if(matched != null) { |
if (!isValidDate(matched[3], matched[2], matched[1])) { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} else { |
if (i == 0) { |
focusField = form[oDate[x][0]]; |
} |
fields[i++] = oDate[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
function isValidDate(day, month, year) { |
if (month < 1 || month > 12) { |
return false; |
} |
if (day < 1 || day > 31) { |
return false; |
} |
if ((month == 4 || month == 6 || month == 9 || month == 11) && |
(day == 31)) { |
return false; |
} |
if (month == 2) { |
var leap = (year % 4 == 0 && |
(year % 100 != 0 || year % 400 == 0)); |
if (day>29 || (day == 29 && !leap)) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<!-- range is deprecated use intRange instead --> |
<validator name="range" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateRange(form) { |
return validateIntRange(form); |
}]]> |
</javascript> |
</validator> |
<validator name="intRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateIntRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="integer" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateIntRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new intRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var iMin = parseInt(oRange[x][2]("min")); |
var iMax = parseInt(oRange[x][2]("max")); |
var iValue = parseInt(form[oRange[x][0]].value); |
if (!(iValue >= iMin && iValue <= iMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="floatRange" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateFloatRange" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="float" |
msg="errors.range"> |
<javascript><![CDATA[ |
function validateFloatRange(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oRange = new floatRange(); |
for (x in oRange) { |
if ((form[oRange[x][0]].type == 'text' || |
form[oRange[x][0]].type == 'textarea') && |
(form[oRange[x][0]].value.length > 0)) { |
var fMin = parseFloat(oRange[x][2]("min")); |
var fMax = parseFloat(oRange[x][2]("max")); |
var fValue = parseFloat(form[oRange[x][0]].value); |
if (!(fValue >= fMin && fValue <= fMax)) { |
if (i == 0) { |
focusField = form[oRange[x][0]]; |
} |
fields[i++] = oRange[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
}]]> |
</javascript> |
</validator> |
<validator name="creditCard" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateCreditCard" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.creditcard"> |
<javascript><![CDATA[ |
function validateCreditCard(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oCreditCard = new creditCard(); |
for (x in oCreditCard) { |
if ((form[oCreditCard[x][0]].type == 'text' || |
form[oCreditCard[x][0]].type == 'textarea') && |
(form[oCreditCard[x][0]].value.length > 0)) { |
if (!luhnCheck(form[oCreditCard[x][0]].value)) { |
if (i == 0) { |
focusField = form[oCreditCard[x][0]]; |
} |
fields[i++] = oCreditCard[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl |
*/ |
function luhnCheck(cardNumber) { |
if (isLuhnNum(cardNumber)) { |
var no_digit = cardNumber.length; |
var oddoeven = no_digit & 1; |
var sum = 0; |
for (var count = 0; count < no_digit; count++) { |
var digit = parseInt(cardNumber.charAt(count)); |
if (!((count & 1) ^ oddoeven)) { |
digit *= 2; |
if (digit > 9) digit -= 9; |
}; |
sum += digit; |
}; |
if (sum == 0) return false; |
if (sum % 10 == 0) return true; |
}; |
return false; |
} |
function isLuhnNum(argvalue) { |
argvalue = argvalue.toString(); |
if (argvalue.length == 0) { |
return false; |
} |
for (var n = 0; n < argvalue.length; n++) { |
if ((argvalue.substring(n, n+1) < "0") || |
(argvalue.substring(n,n+1) > "9")) { |
return false; |
} |
} |
return true; |
}]]> |
</javascript> |
</validator> |
<validator name="email" |
classname="org.apache.struts.validator.FieldChecks" |
method="validateEmail" |
methodParams="java.lang.Object, |
org.apache.commons.validator.ValidatorAction, |
org.apache.commons.validator.Field, |
org.apache.struts.action.ActionErrors, |
javax.servlet.http.HttpServletRequest" |
depends="" |
msg="errors.email"> |
<javascript><![CDATA[ |
function validateEmail(form) { |
var bValid = true; |
var focusField = null; |
var i = 0; |
var fields = new Array(); |
oEmail = new email(); |
for (x in oEmail) { |
if ((form[oEmail[x][0]].type == 'text' || |
form[oEmail[x][0]].type == 'textarea') && |
(form[oEmail[x][0]].value.length > 0)) { |
if (!checkEmail(form[oEmail[x][0]].value)) { |
if (i == 0) { |
focusField = form[oEmail[x][0]]; |
} |
fields[i++] = oEmail[x][1]; |
bValid = false; |
} |
} |
} |
if (fields.length > 0) { |
focusField.focus(); |
alert(fields.join('\n')); |
} |
return bValid; |
} |
/** |
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), |
* http://javascript.internet.com |
*/ |
function checkEmail(emailStr) { |
if (emailStr.length == 0) { |
return true; |
} |
var emailPat=/^(.+)@(.+)$/; |
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; |
var validChars="\[^\\s" + specialChars + "\]"; |
var quotedUser="(\"[^\"]*\")"; |
var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; |
var atom=validChars + '+'; |
var word="(" + atom + "|" + quotedUser + ")"; |
var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); |
var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); |
var matchArray=emailStr.match(emailPat); |
if (matchArray == null) { |
return false; |
} |
var user=matchArray[1]; |
var domain=matchArray[2]; |
if (user.match(userPat) == null) { |
return false; |
} |
var IPArray = domain.match(ipDomainPat); |
if (IPArray != null) { |
for (var i = 1; i <= 4; i++) { |
if (IPArray[i] > 255) { |
return false; |
} |
} |
return true; |
} |
var domainArray=domain.match(domainPat); |
if (domainArray == null) { |
return false; |
} |
var atomPat=new RegExp(atom,"g"); |
var domArr=domain.match(atomPat); |
var len=domArr.length; |
if ((domArr[domArr.length-1].length < 2) || |
(domArr[domArr.length-1].length > 3)) { |
return false; |
} |
if (len < 2) { |
return false; |
} |
return true; |
}]]> |
</javascript> |
</validator> |
</global> |
</form-validation> |
/sun/SimpleChat/trunk/webapp/WEB-INF/web.xml |
---|
0,0 → 1,101 |
<?xml version="1.0" encoding="ISO-8859-1"?> |
<!DOCTYPE web-app |
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" |
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> |
<web-app> |
<filter> |
<filter-name>Encoding Filter</filter-name> |
<filter-class>ak.simplechat.EncodingFilter</filter-class> |
</filter> |
<filter-mapping> |
<filter-name>Encoding Filter</filter-name> |
<url-pattern>/*</url-pattern> |
</filter-mapping> |
<!-- Standard Action Servlet Configuration (with debugging) --> |
<servlet> |
<servlet-name>action</servlet-name> |
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> |
<init-param> |
<param-name>config</param-name> |
<param-value>/WEB-INF/struts-config.xml</param-value> |
</init-param> |
<init-param> |
<param-name>debug</param-name> |
<param-value>2</param-value> |
</init-param> |
<init-param> |
<param-name>detail</param-name> |
<param-value>2</param-value> |
</init-param> |
<load-on-startup>2</load-on-startup> |
</servlet> |
<!-- Standard Action Servlet Mapping --> |
<servlet-mapping> |
<servlet-name>action</servlet-name> |
<url-pattern>*.do</url-pattern> |
</servlet-mapping> |
<!-- The Usual Welcome File List --> |
<welcome-file-list> |
<welcome-file>index.do</welcome-file> |
<welcome-file>index.html</welcome-file> |
</welcome-file-list> |
<!-- Struts Tag Library Descriptors --> |
<taglib> |
<taglib-uri>/tags/struts-bean</taglib-uri> |
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-html</taglib-uri> |
<taglib-location>/WEB-INF/struts-html.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-logic</taglib-uri> |
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-nested</taglib-uri> |
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/tags/struts-tiles</taglib-uri> |
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> |
</taglib> |
<!-- Security --> |
<security-constraint> |
<web-resource-collection> |
<web-resource-name>Simple Chat</web-resource-name> |
<url-pattern>/*</url-pattern> |
</web-resource-collection> |
<auth-constraint> |
<role-name>SimpleChat_user</role-name> |
</auth-constraint> |
</security-constraint> |
<login-config> |
<auth-method>BASIC</auth-method> |
<realm-name>SimpleChat</realm-name> |
</login-config> |
<security-role> |
<description>User of SimpleChat</description> |
<role-name>SimpleChat_user</role-name> |
</security-role> |
</web-app> |
/sun/SimpleChat/trunk/webapp/WEB-INF/.cvsignore |
---|
0,0 → 1,0 |
classes |
/sun/SimpleChat/trunk/webapp/WEB-INF/tiles-defs.xml |
---|
0,0 → 1,42 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> |
<!-- |
This is a blank Tiles definition file with a commented example. |
--> |
<tiles-definitions> |
<!-- sample tiles definitions |
<definition name=".mainLayout" path="/common/layouts/classicLayout.jsp"> |
<put name="title" value="Sample Page Title" /> |
<put name="header" value="/common/header.jsp" /> |
<put name="menu" value=".mainMenu" /> |
<put name="footer" value="/common/footer.jsp" /> |
<put name="body" value=".portal.body" /> |
</definition> |
<definition name=".mainMenu" path="/common/layouts/vboxLayout.jsp" > |
<putList name="list" > |
<add value=".menu.links" /> |
<add value=".menu.taglib.references" /> |
<add value=".menu.printer.friendly" /> |
<add value=".menu.old.documents" /> |
</putList> |
</definition> |
<definition name="aPage" extends=".mainLayout"> |
<put name="title" value="Another Title" /> |
<put name="body" value=".aPage.body" /> |
</definition> |
end samples --> |
<definition name="${YOUR_DEFINITION_HERE}"> |
</definition> |
</tiles-definitions> |
/sun/SimpleChat/trunk/webapp/WEB-INF/struts-template.tld |
---|
0,0 → 1,73 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>template</shortname> |
<uri>http://jakarta.apache.org/struts/tags-template</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.template.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.template.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.template.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/SimpleChat/trunk/webapp/WEB-INF/struts-logic.tld |
---|
0,0 → 1,642 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>logic</shortname> |
<uri>http://jakarta.apache.org/struts/tags-logic</uri> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.logic.EmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.logic.EqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>forward</name> |
<tagclass>org.apache.struts.taglib.logic.ForwardTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.logic.GreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.logic.IterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.logic.LessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.logic.LessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.logic.MatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.logic.MessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.logic.NotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.logic.NotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.logic.NotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.logic.NotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.logic.PresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>redirect</name> |
<tagclass>org.apache.struts.taglib.logic.RedirectTag</tagclass> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/SimpleChat/trunk/webapp/WEB-INF/struts-tiles.tld |
---|
0,0 → 1,344 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>Tiles Tag Library</shortname> |
<uri>http://jakarta.apache.org/struts/tags-tiles</uri> |
<tag> |
<name>insert</name> |
<tagclass>org.apache.struts.taglib.tiles.InsertTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>component</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>definition</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>attribute</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerUrl</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>controllerClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>definition</name> |
<tagclass>org.apache.struts.taglib.tiles.DefinitionTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>template</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>extends</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>put</name> |
<tagclass>org.apache.struts.taglib.tiles.PutTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>putList</name> |
<tagclass>org.apache.struts.taglib.tiles.PutListTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>add</name> |
<tagclass>org.apache.struts.taglib.tiles.AddTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>content</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>direct</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanScope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>get</name> |
<tagclass>org.apache.struts.taglib.tiles.GetTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>flush</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>getAsString</name> |
<tagclass>org.apache.struts.taglib.tiles.GetAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>useAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.UseAttributeTag</tagclass> |
<teiclass>org.apache.struts.taglib.tiles.UseAttributeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>importAttribute</name> |
<tagclass>org.apache.struts.taglib.tiles.ImportAttributeTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>initComponentDefinitions</name> |
<tagclass>org.apache.struts.taglib.tiles.InitDefinitionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>file</name> |
<required>true</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-pool.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-resources.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/struts.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-collections.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-lang.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/jakarta-oro.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-fileupload.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-validator.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-beanutils.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-digester.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-logging.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/log4j.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/lib/commons-dbcp.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/sun/SimpleChat/trunk/webapp/WEB-INF/struts-config.xml |
---|
0,0 → 1,48 |
<?xml version="1.0" encoding="ISO-8859-1" ?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" |
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> |
<struts-config> |
<form-beans> |
<form-bean |
name="messageForm" |
type="ak.simplechat.MessageForm" |
/> |
</form-beans> |
<global-forwards> |
<forward |
name="error" |
path="/error.jsp" |
/> |
</global-forwards> |
<action-mappings> |
<action |
path="/index" |
forward="/index.jsp"/> |
/> |
<action |
path="/display" |
type="ak.simplechat.DisplayAction" |
> |
<forward name="success" path="/display.jsp"/> |
</action> |
<action |
path="/message" |
type="ak.simplechat.MessageAction" |
name="messageForm" |
validate="true" |
scope="request" |
input="/message.jsp" |
> |
<forward name="message" path="/message.jsp"/> |
</action> |
</action-mappings> |
<message-resources parameter="ak.simplechat.ApplicationResources"/> |
</struts-config> |
/sun/SimpleChat/trunk/webapp/WEB-INF/struts-nested.tld |
---|
0,0 → 1,2870 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> |
<taglib> |
<tlibversion>1.0</tlibversion> |
<jspversion>1.1</jspversion> |
<shortname>nested</shortname> |
<uri>http://jakarta.apache.org/struts/tags-nested</uri> |
<tag> |
<name>nest</name> |
<tagclass>org.apache.struts.taglib.nested.NestedPropertyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>writeNesting</name> |
<tagclass>org.apache.struts.taglib.nested.NestedWriteNestingTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>root</name> |
<tagclass>org.apache.struts.taglib.nested.NestedRootTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>define</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedDefineTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>toScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>message</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedMessageTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>arg0</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg1</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>arg4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>key</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>size</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedSizeTag</tagclass> |
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>org.apache.struts.taglib.nested.bean.NestedWriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>checkbox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedCheckboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>errors</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedErrorsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>file</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFileTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>accept</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>form</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedFormTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>action</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>enctype</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>focus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>method</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onreset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onsubmit</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>hidden</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedHiddenTag</tagclass> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>image</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImageTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>img</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedImgTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>align</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>border</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>height</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>hspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>imageName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ismap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>lowsrc</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>pageKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>src</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>srcKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>usemap</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>vspace</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>width</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>link</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messages</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMessagesTag</tagclass> |
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>id</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>footer</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>multibox</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedMultiboxTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>options</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>labelProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>optionsCollection</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsCollectionTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>label</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>password</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedPasswordTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>redisplay</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>radio</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedRadioTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>select</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSelectTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>multiple</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>submit</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedSubmitTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>text</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>maxlength</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>size</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>textarea</name> |
<tagclass>org.apache.struts.taglib.nested.html.NestedTextareaTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>alt</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>altKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>cols</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>disabled</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onchange</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>readonly</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>rows</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>empty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>equal</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>greaterThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>iterate</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedIterateTag</tagclass> |
<teiclass>org.apache.struts.taglib.nested.logic.NestedIterateTei</teiclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>collection</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>id</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>length</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>offset</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>type</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>lessThan</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessThanTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>match</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesNotPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>messagesPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>message</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEmpty</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEmptyTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notEqual</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEqualTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notMatch</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotMatchTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>location</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>value</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>notPresent</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>present</name> |
<tagclass>org.apache.struts.taglib.nested.logic.NestedPresentTag</tagclass> |
<bodycontent>JSP</bodycontent> |
<attribute> |
<name>cookie</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>header</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>parameter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>role</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>user</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/sun/SimpleChat/trunk/webapp/index.do |
---|
--- SimpleChat/trunk/webapp/message.jsp (nonexistent) |
+++ SimpleChat/trunk/webapp/message.jsp (revision 958) |
@@ -0,0 +1,32 @@ |
+<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
+<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
+<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
+<html> |
+ |
+<head> |
+ <title><bean:message key="title.message" /></title> |
+</head> |
+ |
+<body> |
+ |
+<form action=message.do> |
+<p> |
+ <%= (request.getUserPrincipal() == null) ? null : request.getUserPrincipal().getName() %> - |
+ <input type=input name=message> <input type=submit value="<bean:message key="button.send" />"> |
+ <span style="color:red;"><html:errors property="message" /></span> |
+</p> |
+</form> |
+ |
+<script language="JavaScript"><!-- |
+ document.forms[0].message.focus(); |
+ |
+ if(window.parent) |
+ if(window.parent.SimpleChat_Display) |
+ if(window.parent.SimpleChat_Display.location) |
+ window.parent.SimpleChat_Display.location.reload(); |
+// --></script> |
+ |
+</body> |
+ |
+</html> |