DefaultCommand controls which command to initiate form submit with when enter key is pressed. Multiple defaultCommand in same form is supported with scope option. Within a Textarea the defaultCommand is not active.
<div class="card">
    <h:form id="form">
        <p:growl>
            <p:autoUpdate/>
        </p:growl>
        <p:panel header="Panel 1" id="panel1" styleClass="mb-5">
            <h:panelGrid columns="2" cellpadding="7">
                <h:outputLabel for="name" value="Name"/>
                <p:inputText id="name" value="#{defaultCommandView.text}"/>
                <h:outputLabel for="textarea" value="Textarea"/>
                <p:inputTextarea id="textarea" value="#{defaultCommandView.text2}"/>
            </h:panelGrid>
        </p:panel>
        <p:panel header="Panel 2" id="panel2" styleClass="mb-5">
            <h:panelGrid columns="2" cellpadding="7">
                <h:outputLabel for="otherInput" value="Other input"/>
                <p:inputText id="otherInput"/>
            </h:panelGrid>
        </p:panel>
        <p:commandButton value="Button1" id="btn1" action="#{defaultCommandView.btn1Submit}" styleClass="mr-2" />
        <p:commandButton value="Button2" id="btn2" action="#{defaultCommandView.btn2Submit}"/>
        <p:defaultCommand target="btn1" scope="panel1"/>
        <p:defaultCommand target="btn2" scope="panel2"/>
    </h:form>
</div>
package org.primefaces.showcase.view.misc;
import java.util.ArrayList;
import java.util.List;
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.RequestScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Named;
@Named
@RequestScoped
public class DefaultCommandView {
    private String text;
    private String text2;
    private String btn = "btn1";
    private List<String> buttons;
    @PostConstruct
    public void init() {
        buttons = new ArrayList<>();
        buttons.add("btn1");
        buttons.add("btn2");
        buttons.add("btn3");
    }
    public String getBtn() {
        return btn;
    }
    public void setBtn(String btn) {
        this.btn = btn;
    }
    public List<String> getButtons() {
        return buttons;
    }
    public void setButtons(List<String> buttons) {
        this.buttons = buttons;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public String getText2() {
        return text2;
    }
    public void setText2(String text2) {
        this.text2 = text2;
    }
    public void addMessage(String btn) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Submitted with " + btn));
    }
    public void btn1Submit() {
        addMessage("btn1");
    }
    public void btn2Submit() {
        addMessage("btn2");
    }
    public void btn3Submit() {
        addMessage("btn3");
    }
}