You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2025/02/17 08:59:40 UTC
(myfaces-tobago) 04/04: fix: dropdown in link with ui:repeat jakarta -> javax
This is an automated email from the ASF dual-hosted git repository.
bommel pushed a commit to branch tobago-5.x
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit d50b29d9d4e5c8334c52b55ad8846b35e3b85e3d
Author: Bernd Bohmann <bo...@apache.org>
AuthorDate: Fri Feb 14 20:49:24 2025 +0100
fix: dropdown in link with ui:repeat
jakarta -> javax
Issue: TOBAGO-2385
(cherry picked from commit 70a84c4f552fe22de49dd86615da28c5c70c81da)
---
.../apache/myfaces/tobago/internal/component/AbstractUICommand.java | 2 +-
.../tobago/internal/renderkit/renderer/CommandRendererBase.java | 2 +-
.../tobago/internal/renderkit/renderer/SegmentLayoutRenderer.java | 2 +-
.../main/java/org/apache/myfaces/tobago/util/ComponentUtils.java | 6 ++++++
4 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java
index 978dc4fc6c..09aa38c712 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java
@@ -84,7 +84,7 @@ private ParentOfCommandVisitor(FacesContext facesContext, String clientId) {
public VisitResult visit(VisitContext context, UIComponent target) {
if (!target.getClientId(facesContext).equals(clientId)
&& (target instanceof Visual && !((Visual) target).isPlain()
- || target.getRendererType() != null && target.getRendererType().startsWith("javax.faces"))) {
+ || ComponentUtils.isStandardHtmlRendererType(target))) {
if (!(target instanceof AbstractUIEvent)
&& (target instanceof UICommand || target instanceof UIInput)) {
parentOfCommands = true;
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
index 8cb79bedb6..d04401b585 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
@@ -291,7 +291,7 @@ public VisitResult visit(VisitContext context, UIComponent target) {
renderLater.add(target);
return VisitResult.REJECT;
} else if (target instanceof Visual && !((Visual) target).isPlain()
- || target.getRendererType() != null && target.getRendererType().startsWith("javax.faces")) {
+ || ComponentUtils.isStandardHtmlRendererType(target)) {
if (!(target instanceof UIParameter) && !(target instanceof AbstractUIBadge)) {
if (target instanceof AbstractUILink
|| target instanceof AbstractUISelectBooleanCheckbox
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SegmentLayoutRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SegmentLayoutRenderer.java
index ec33c3eb78..6e1ff9655b 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SegmentLayoutRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SegmentLayoutRenderer.java
@@ -79,7 +79,7 @@ public void encodeChildrenInternal(final FacesContext facesContext, final T comp
(context, target) -> {
if (!target.getClientId(facesContext).equals(component.getClientId(facesContext))
&& (target instanceof Visual && !((Visual) target).isPlain()
- || target.getRendererType() != null && target.getRendererType().startsWith("javax.faces"))) {
+ || ComponentUtils.isStandardHtmlRendererType(target))) {
try {
encodeChild(facesContext, writer, generator, target);
} catch (IOException ioException) {
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java
index 0a7f8b2f45..3aea533fa9 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java
@@ -79,6 +79,7 @@ public final class ComponentUtils {
= "org.apache.myfaces.tobago.util.ComponentUtils.RendererKeyPrefix_";
private static final String PAGE_KEY = "org.apache.myfaces.tobago.Page.Key";
+ private static final String STANDARD_HTML_RENDER_KIT_RENDERER_TYPE_PREFIX = "javax.faces";
public static final Class[] ACTION_ARGS = {};
public static final Class[] ACTION_LISTENER_ARGS = {ActionEvent.class};
@@ -97,6 +98,11 @@ public final class ComponentUtils {
private ComponentUtils() {
}
+ public static boolean isStandardHtmlRendererType(UIComponent component) {
+ return component.getRendererType() != null
+ && component.getRendererType().startsWith(ComponentUtils.STANDARD_HTML_RENDER_KIT_RENDERER_TYPE_PREFIX);
+ }
+
@Deprecated(since = "3.0.1", forRemoval = true)
public static boolean hasErrorMessages(final FacesContext context) {
for (final FacesMessage message : (Iterable<FacesMessage>) context::getMessages) {