Skip to content

Commit

Permalink
Merge b3f1c1e into 00a3723
Browse files Browse the repository at this point in the history
  • Loading branch information
gregh3269 committed Oct 7, 2022
2 parents 00a3723 + b3f1c1e commit 9661a0f
Show file tree
Hide file tree
Showing 16 changed files with 3,067 additions and 24 deletions.
Expand Up @@ -56,6 +56,15 @@ public class GetAsStringModel {
* The attribute resolver to use.
*/
private final AttributeResolver attributeResolver;

/**
* Constructor that uses the defaut attribute resolver.
*
* @since 3.0.0
*/
public GetAsStringModel() {
this(new DefaultAttributeResolver());
}

/**
* Constructor.
Expand Down
@@ -0,0 +1,166 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.tiles.web.jsp.taglib;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.jsp.autotag.JspAutotagRuntime;
import org.apache.tiles.template.AddAttributeModel;
import org.apache.tiles.autotag.core.runtime.AutotagRuntime;

/**
* <p>
* Add an element to the surrounding list. Equivalent to 'putAttribute', but for
* list element.
* </p>
*
* <p>
* Add an element to the surrounding list. This tag can only be used inside
* 'putListAttribute' or 'addListAttribute' tags. Value can come from a direct
* assignment (value="aValue")
* </p>
*/
public class AddAttributeTag extends SimpleTagSupport {

/**
* The template model.
*/
private AddAttributeModel model = new AddAttributeModel();

/**
* The value of the attribute. Use this parameter, or expression, or body.
*/
private Object value;

/**
* The expression to calculate the value from. Use this parameter, or value, or
* body.
*/
private String expression;

/**
* A comma-separated list of roles. If present, the attribute will be rendered
* only if the current user belongs to one of the roles.
*/
private String role;

/**
* The type (renderer) of the attribute.
*/
private String type;

/**
* Getter for value property.
*
* @return The value of the attribute. Use this parameter, or expression, or
* body.
*/
public Object getValue() {
return value;
}

/**
* Setter for value property.
*
* @param value The value of the attribute. Use this parameter, or expression,
* or body.
*/
public void setValue(Object value) {
this.value = value;
}

/**
* Getter for expression property.
*
* @return The expression to calculate the value from. Use this parameter, or
* value, or body.
*/
public String getExpression() {
return expression;
}

/**
* Setter for expression property.
*
* @param expression The expression to calculate the value from. Use this
* parameter, or value, or body.
*/
public void setExpression(String expression) {
this.expression = expression;
}

/**
* Getter for role property.
*
* @return A comma-separated list of roles. If present, the attribute will be
* rendered only if the current user belongs to one of the roles.
*/
public String getRole() {
return role;
}

/**
* Setter for role property.
*
* @param role A comma-separated list of roles. If present, the attribute will
* be rendered only if the current user belongs to one of the roles.
*/
public void setRole(String role) {
this.role = role;
}

/**
* Getter for type property.
*
* @return The type (renderer) of the attribute.
*/
public String getType() {
return type;
}

/**
* Setter for type property.
*
* @param type The type (renderer) of the attribute.
*/
public void setType(String type) {
this.type = type;
}

/** {@inheritDoc} */
@Override
public void doTag() throws JspException, IOException {
AutotagRuntime<Request> runtime = new JspAutotagRuntime();
if (runtime instanceof SimpleTagSupport) {
SimpleTagSupport tag = (SimpleTagSupport) runtime;
tag.setJspContext(getJspContext());
tag.setJspBody(getJspBody());
tag.setParent(getParent());
tag.doTag();
}
Request request = runtime.createRequest();
ModelBody modelBody = runtime.createModelBody();
model.execute(value, expression, role, type, request, modelBody);
}
}
@@ -0,0 +1,88 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.tiles.web.jsp.taglib;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.jsp.autotag.JspAutotagRuntime;
import org.apache.tiles.template.AddListAttributeModel;
import org.apache.tiles.autotag.core.runtime.AutotagRuntime;

/**
* <p>
* Declare a list that will be pass as an attribute.
* </p>
* <p>
* Declare a list that will be pass as an attribute . List elements are added
* using the tag 'addAttribute' or 'addListAttribute'. This tag can only be used
* inside 'insertTemplate', 'insertDefinition' or 'definition' tag.
* </p>
*/
public class AddListAttributeTag extends SimpleTagSupport {

/**
* The template model.
*/
private AddListAttributeModel model = new AddListAttributeModel();

/**
* The comma-separated list of roles that can use the list attribute.
*/
private String role;

/**
* Getter for role property.
*
* @return The comma-separated list of roles that can use the list attribute.
*/
public String getRole() {
return role;
}

/**
* Setter for role property.
*
* @param role The comma-separated list of roles that can use the list
* attribute.
*/
public void setRole(String role) {
this.role = role;
}

/** {@inheritDoc} */
@Override
public void doTag() throws JspException, IOException {
AutotagRuntime<Request> runtime = new JspAutotagRuntime();
if (runtime instanceof SimpleTagSupport) {
SimpleTagSupport tag = (SimpleTagSupport) runtime;
tag.setJspContext(getJspContext());
tag.setJspBody(getJspBody());
tag.setParent(getParent());
tag.doTag();
}
Request request = runtime.createRequest();
ModelBody modelBody = runtime.createModelBody();
model.execute(role, request, modelBody);
}
}

0 comments on commit 9661a0f

Please sign in to comment.