use of jakarta.faces.component.html.HtmlInputFile in project myfaces by apache.
the class HtmlInputFileRendererBase method decode.
@Override
public void decode(FacesContext facesContext, UIComponent component) {
try {
String clientId = component.getClientId();
HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
Collection<Part> parts = request.getParts();
Collection<Part> submittedValues = new ArrayList<>(parts.size());
for (Part part : parts) {
if (clientId.equals(part.getName())) {
HttpPartWrapper wrapper = new HttpPartWrapper(part);
submittedValues.add(wrapper);
}
}
if (((HtmlInputFile) component).isMultiple()) {
((UIInput) component).setSubmittedValue(submittedValues);
} else if (!submittedValues.isEmpty()) {
((UIInput) component).setSubmittedValue(submittedValues.iterator().next());
}
} catch (IOException | ServletException e) {
throw new FacesException(e);
}
if (component instanceof ClientBehaviorHolder && !HtmlRendererUtils.isDisabled(component)) {
ClientBehaviorRendererUtils.decodeClientBehaviors(facesContext, component);
}
}
use of jakarta.faces.component.html.HtmlInputFile in project myfaces by apache.
the class HtmlInputFileRendererBase method renderInputBegin.
// Subclasses can set the value of an attribute before, or can render a custom attribute after calling this method
protected void renderInputBegin(FacesContext facesContext, UIComponent component) throws IOException {
ResponseWriter writer = facesContext.getResponseWriter();
String clientId = component.getClientId(facesContext);
writer.startElement(HTML.INPUT_ELEM, component);
writer.writeAttribute(HTML.ID_ATTR, clientId, null);
writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_FILE, null);
Map<String, List<ClientBehavior>> behaviors = null;
if (component instanceof ClientBehaviorHolder) {
behaviors = ((ClientBehaviorHolder) component).getClientBehaviors();
long commonPropertiesMarked = 0L;
if (isCommonPropertiesOptimizationEnabled(facesContext)) {
commonPropertiesMarked = CommonHtmlAttributesUtil.getMarkedAttributes(component);
}
if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext)) {
CommonHtmlAttributesUtil.renderChangeEventProperty(writer, commonPropertiesMarked, component);
CommonHtmlAttributesUtil.renderEventProperties(writer, commonPropertiesMarked, component);
CommonHtmlAttributesUtil.renderFieldEventPropertiesWithoutOnchange(writer, commonPropertiesMarked, component);
} else {
HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, component, behaviors);
if (isCommonEventsOptimizationEnabled(facesContext)) {
Long commonEventsMarked = CommonHtmlEventsUtil.getMarkedEvents(component);
CommonHtmlEventsUtil.renderBehaviorizedEventHandlers(facesContext, writer, commonPropertiesMarked, commonEventsMarked, component, behaviors);
CommonHtmlEventsUtil.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, commonPropertiesMarked, commonEventsMarked, component, behaviors);
} else {
HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, component, behaviors);
}
}
if (isCommonPropertiesOptimizationEnabled(facesContext)) {
CommonHtmlAttributesUtil.renderInputPassthroughPropertiesWithoutDisabledAndEvents(writer, commonPropertiesMarked, component);
} else {
HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
}
} else {
if (isCommonPropertiesOptimizationEnabled(facesContext)) {
CommonHtmlAttributesUtil.renderInputPassthroughPropertiesWithoutDisabled(writer, CommonHtmlAttributesUtil.getMarkedAttributes(component), component);
} else {
HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
}
}
HtmlInputFile inputFile = (HtmlInputFile) component;
if (inputFile.isDisabled()) {
writer.writeAttribute(HTML.DISABLED_ATTR, HTML.DISABLED_ATTR, null);
}
if (inputFile.isMultiple()) {
writer.writeAttribute(HTML.MULTIPLE_ATTR, HTML.MULTIPLE_ATTR, null);
}
if (AUTOCOMPLETE_VALUE_OFF.equals(inputFile.getAutocomplete())) {
writer.writeAttribute(HTML.AUTOCOMPLETE_ATTR, AUTOCOMPLETE_VALUE_OFF, HTML.AUTOCOMPLETE_ATTR);
}
if (inputFile.getAccept() != null) {
writer.writeAttribute(HTML.ACCEPT_ATTR, inputFile.getAccept(), HTML.ACCEPT_ATTR);
}
}
use of jakarta.faces.component.html.HtmlInputFile in project myfaces by apache.
the class DefaultHtmlDecoratorTestCaseUrn method checkTags.
private void checkTags() throws Exception {
UIViewRoot root = facesContext.getViewRoot();
HtmlHead head = (HtmlHead) root.findComponent("idHead");
int linksFound = 0;
int scriptsFound = 0;
for (UIComponent child : head.getChildren()) {
if (child instanceof UIOutput) {
if (ResourceUtils.DEFAULT_SCRIPT_RENDERER_TYPE.equals(child.getRendererType())) {
Assert.assertEquals("osc", child.getId());
scriptsFound++;
}
if (ResourceUtils.DEFAULT_STYLESHEET_RENDERER_TYPE.equals(child.getRendererType())) {
Assert.assertEquals("osh", child.getId());
linksFound++;
}
}
}
for (UIComponent child : root.getComponentResources(facesContext, "head")) {
if ("jakarta.faces.resource.Stylesheet".equals(child.getRendererType())) {
Assert.assertEquals("osh", child.getId());
linksFound++;
}
}
Assert.assertEquals(1, linksFound);
Assert.assertEquals(1, scriptsFound);
HtmlBody body = (HtmlBody) root.findComponent("idBody");
Assert.assertNotNull(body);
UIForm form = (UIForm) root.findComponent("myForm");
Assert.assertNotNull(form);
HtmlCommandLink link1 = (HtmlCommandLink) form.findComponent("link1");
Assert.assertNotNull(link1);
Assert.assertEquals("#{test.testAction}", link1.getActionExpression().getExpressionString());
HtmlCommandLink link2 = (HtmlCommandLink) form.findComponent("link2");
Assert.assertNotNull(link2);
Assert.assertEquals(1, link2.getActionListeners().length);
HtmlOutputLink link3 = (HtmlOutputLink) form.findComponent("link3");
Assert.assertNotNull(link3);
Assert.assertEquals("/my/new/location.txt", link3.getValue());
HtmlOutcomeTargetLink link4 = (HtmlOutcomeTargetLink) form.findComponent("link4");
Assert.assertNotNull(link4);
Assert.assertEquals("rollback", link4.getOutcome());
HtmlCommandButton button = (HtmlCommandButton) form.findComponent("button1");
Assert.assertNotNull(button);
Assert.assertEquals("#{test.testAction}", button.getActionExpression().getExpressionString());
HtmlOutcomeTargetButton button2 = (HtmlOutcomeTargetButton) form.findComponent("button2");
Assert.assertNotNull(button2);
Assert.assertEquals("rollback", button2.getOutcome());
HtmlGraphicImage img1 = (HtmlGraphicImage) form.findComponent("img1");
Assert.assertNotNull(img1);
Assert.assertEquals("/my/image.png", img1.getUrl());
HtmlCommandButton input1 = (HtmlCommandButton) form.findComponent("input1");
Assert.assertNotNull(input1);
HtmlSelectBooleanCheckbox input2 = (HtmlSelectBooleanCheckbox) form.findComponent("input2");
Assert.assertNotNull(input2);
HtmlInputText input3 = (HtmlInputText) form.findComponent("input3");
Assert.assertNotNull(input3);
HtmlInputText input4 = (HtmlInputText) form.findComponent("input4");
Assert.assertNotNull(input4);
HtmlInputText input5 = (HtmlInputText) form.findComponent("input5");
Assert.assertNotNull(input5);
HtmlInputText input6 = (HtmlInputText) form.findComponent("input6");
Assert.assertNotNull(input6);
HtmlInputText input7 = (HtmlInputText) form.findComponent("input7");
Assert.assertNotNull(input7);
HtmlInputText input8 = (HtmlInputText) form.findComponent("input8");
Assert.assertNotNull(input8);
HtmlInputText input9 = (HtmlInputText) form.findComponent("input9");
Assert.assertNotNull(input9);
HtmlInputText input10 = (HtmlInputText) form.findComponent("input10");
Assert.assertNotNull(input10);
HtmlInputText input11 = (HtmlInputText) form.findComponent("input11");
Assert.assertNotNull(input11);
HtmlInputText input12 = (HtmlInputText) form.findComponent("input12");
Assert.assertNotNull(input12);
HtmlInputText input13 = (HtmlInputText) form.findComponent("input13");
Assert.assertNotNull(input13);
HtmlInputText input14 = (HtmlInputText) form.findComponent("input14");
Assert.assertNotNull(input14);
HtmlInputFile input15 = (HtmlInputFile) form.findComponent("input15");
Assert.assertNotNull(input15);
HtmlInputHidden input16 = (HtmlInputHidden) form.findComponent("input16");
Assert.assertNotNull(input16);
HtmlInputSecret input17 = (HtmlInputSecret) form.findComponent("input17");
Assert.assertNotNull(input17);
HtmlCommandButton input18 = (HtmlCommandButton) form.findComponent("input18");
Assert.assertNotNull(input18);
HtmlCommandButton input19 = (HtmlCommandButton) form.findComponent("input19");
Assert.assertNotNull(input19);
HtmlInputText input20 = (HtmlInputText) form.findComponent("input20");
Assert.assertNotNull(input20);
HtmlOutputLabel label1 = (HtmlOutputLabel) form.findComponent("label1");
Assert.assertNotNull(label1);
HtmlSelectOneListbox select1 = (HtmlSelectOneListbox) form.findComponent("select1");
Assert.assertNotNull(select1);
HtmlSelectManyListbox select2 = (HtmlSelectManyListbox) form.findComponent("select2");
Assert.assertNotNull(select2);
HtmlInputTextarea textarea1 = (HtmlInputTextarea) form.findComponent("textarea1");
Assert.assertNotNull(textarea1);
}
use of jakarta.faces.component.html.HtmlInputFile in project mojarra by eclipse-ee4j.
the class FileRenderer method decode.
// ---------------------------------------------------------- Public Methods
@Override
public void decode(FacesContext context, UIComponent component) {
rendererParamsNotNull(context, component);
if (!shouldDecode(component)) {
return;
}
String clientId = decodeBehaviors(context, component);
if (clientId == null) {
clientId = component.getClientId(context);
}
assert clientId != null;
ExternalContext externalContext = context.getExternalContext();
Map<String, String> requestMap = externalContext.getRequestParameterMap();
if (requestMap.containsKey(clientId)) {
setSubmittedValue(component, requestMap.get(clientId));
}
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
try {
Collection<Part> parts = request.getParts();
Collection<Part> submittedValues = new ArrayList<>();
for (Part cur : parts) {
if (clientId.equals(cur.getName())) {
// The cause of 3404 is here: the component should not be
// transient, rather, the value should not saved as part of
// the state
// component.setTransient(true);
submittedValues.add(cur);
}
}
if (((HtmlInputFile) component).isMultiple()) {
setSubmittedValue(component, submittedValues);
} else if (!submittedValues.isEmpty()) {
setSubmittedValue(component, submittedValues.iterator().next());
}
} catch (IOException | ServletException ioe) {
throw new FacesException(ioe);
}
}
use of jakarta.faces.component.html.HtmlInputFile in project myfaces by apache.
the class DefaultHtmlDecoratorTestCase method checkTags.
private void checkTags() throws Exception {
UIViewRoot root = facesContext.getViewRoot();
HtmlHead head = (HtmlHead) root.findComponent("idHead");
int linksFound = 0;
int scriptsFound = 0;
for (UIComponent child : head.getChildren()) {
if (child instanceof UIOutput) {
if (ResourceUtils.DEFAULT_SCRIPT_RENDERER_TYPE.equals(child.getRendererType())) {
Assert.assertEquals("osc", child.getId());
scriptsFound++;
}
if (ResourceUtils.DEFAULT_STYLESHEET_RENDERER_TYPE.equals(child.getRendererType())) {
Assert.assertEquals("osh", child.getId());
linksFound++;
}
}
}
for (UIComponent child : root.getComponentResources(facesContext, "head")) {
if ("jakarta.faces.resource.Stylesheet".equals(child.getRendererType())) {
Assert.assertEquals("osh", child.getId());
linksFound++;
}
}
Assert.assertEquals(1, linksFound);
Assert.assertEquals(1, scriptsFound);
HtmlBody body = (HtmlBody) root.findComponent("idBody");
Assert.assertNotNull(body);
UIForm form = (UIForm) root.findComponent("myForm");
Assert.assertNotNull(form);
HtmlCommandLink link1 = (HtmlCommandLink) form.findComponent("link1");
Assert.assertNotNull(link1);
Assert.assertEquals("#{test.testAction}", link1.getActionExpression().getExpressionString());
HtmlCommandLink link2 = (HtmlCommandLink) form.findComponent("link2");
Assert.assertNotNull(link2);
Assert.assertEquals(1, link2.getActionListeners().length);
HtmlOutputLink link3 = (HtmlOutputLink) form.findComponent("link3");
Assert.assertNotNull(link3);
Assert.assertEquals("/my/new/location.txt", link3.getValue());
HtmlOutcomeTargetLink link4 = (HtmlOutcomeTargetLink) form.findComponent("link4");
Assert.assertNotNull(link4);
Assert.assertEquals("rollback", link4.getOutcome());
HtmlCommandButton button = (HtmlCommandButton) form.findComponent("button1");
Assert.assertNotNull(button);
Assert.assertEquals("#{test.testAction}", button.getActionExpression().getExpressionString());
HtmlOutcomeTargetButton button2 = (HtmlOutcomeTargetButton) form.findComponent("button2");
Assert.assertNotNull(button2);
Assert.assertEquals("rollback", button2.getOutcome());
HtmlGraphicImage img1 = (HtmlGraphicImage) form.findComponent("img1");
Assert.assertNotNull(img1);
Assert.assertEquals("/my/image.png", img1.getUrl());
HtmlCommandButton input1 = (HtmlCommandButton) form.findComponent("input1");
Assert.assertNotNull(input1);
HtmlSelectBooleanCheckbox input2 = (HtmlSelectBooleanCheckbox) form.findComponent("input2");
Assert.assertNotNull(input2);
HtmlInputText input3 = (HtmlInputText) form.findComponent("input3");
Assert.assertNotNull(input3);
HtmlInputText input4 = (HtmlInputText) form.findComponent("input4");
Assert.assertNotNull(input4);
HtmlInputText input5 = (HtmlInputText) form.findComponent("input5");
Assert.assertNotNull(input5);
HtmlInputText input6 = (HtmlInputText) form.findComponent("input6");
Assert.assertNotNull(input6);
HtmlInputText input7 = (HtmlInputText) form.findComponent("input7");
Assert.assertNotNull(input7);
HtmlInputText input8 = (HtmlInputText) form.findComponent("input8");
Assert.assertNotNull(input8);
HtmlInputText input9 = (HtmlInputText) form.findComponent("input9");
Assert.assertNotNull(input9);
HtmlInputText input10 = (HtmlInputText) form.findComponent("input10");
Assert.assertNotNull(input10);
HtmlInputText input11 = (HtmlInputText) form.findComponent("input11");
Assert.assertNotNull(input11);
HtmlInputText input12 = (HtmlInputText) form.findComponent("input12");
Assert.assertNotNull(input12);
HtmlInputText input13 = (HtmlInputText) form.findComponent("input13");
Assert.assertNotNull(input13);
HtmlInputText input14 = (HtmlInputText) form.findComponent("input14");
Assert.assertNotNull(input14);
HtmlInputFile input15 = (HtmlInputFile) form.findComponent("input15");
Assert.assertNotNull(input15);
HtmlInputHidden input16 = (HtmlInputHidden) form.findComponent("input16");
Assert.assertNotNull(input16);
HtmlInputSecret input17 = (HtmlInputSecret) form.findComponent("input17");
Assert.assertNotNull(input17);
HtmlCommandButton input18 = (HtmlCommandButton) form.findComponent("input18");
Assert.assertNotNull(input18);
HtmlCommandButton input19 = (HtmlCommandButton) form.findComponent("input19");
Assert.assertNotNull(input19);
HtmlInputText input20 = (HtmlInputText) form.findComponent("input20");
Assert.assertNotNull(input20);
HtmlOutputLabel label1 = (HtmlOutputLabel) form.findComponent("label1");
Assert.assertNotNull(label1);
HtmlSelectOneListbox select1 = (HtmlSelectOneListbox) form.findComponent("select1");
Assert.assertNotNull(select1);
HtmlSelectManyListbox select2 = (HtmlSelectManyListbox) form.findComponent("select2");
Assert.assertNotNull(select2);
HtmlInputTextarea textarea1 = (HtmlInputTextarea) form.findComponent("textarea1");
Assert.assertNotNull(textarea1);
}
Aggregations